zoukankan      html  css  js  c++  java
  • 线程介绍

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                timer1.Enabled = true;
                ThreadStart childref = new ThreadStart(CallToChildThread);
                Thread childThread = new Thread(childref);
                childThread.Start();
            }
            public void CallToChildThread()
            {
                while (true)
                {
                    Console.WriteLine("子线程开始");
                    // 线程暂停 3000 毫秒
                    int sleepfor = 1000;
                    Console.WriteLine("子线程等待 {0} 秒", sleepfor / 1000);
                    Thread.Sleep(sleepfor);
                    SetText("我是子线程:" + DateTime.Now.ToString());
                }
            }
            private delegate void SetTextCallback(string text);
    
            /// <summary>
            /// 给label赋值
            /// </summary>
            /// <param name="text"></param>
            private void SetText(string text)
            {
                // InvokeRequired需要比较调用线程ID和创建线程ID
                // 如果它们不相同则返回true
                if (this.label1.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(SetText);
                    this.Invoke(d, new object[] { text });
                }
                else
                {
                    this.label1.Text = text;
                }
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                 if (progressBar1.Value<progressBar1.Maximum)
                {
                    progressBar1.Value++;
                }
                else
                {
                    
                    timer1.Enabled = false;
                }
            }
        }
    }
  • 相关阅读:
    adb在查询数据库中遇到的问题及解决【1】
    软工人3月9日学习
    软工人3月8日学习
    Android studio ListView的数据更新问题
    python将爬取数据存储到文本文件
    Android studio ListView的数据更新问题
    Android studio ListView之checkbox错位问题解决
    阅读笔记《人月神话》1
    android打包生成apk
    线性布局和相对布局
  • 原文地址:https://www.cnblogs.com/bin521/p/10723104.html
Copyright © 2011-2022 走看看