winform下简单多线程例子

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

using System.Threading;


namespace KingdeeSZReflector
{
    
/// <summary>
    
/// Form2 的摘要说明。
    
/// </summary>
    public class Form2 : System.Windows.Forms.Form
    {
        
private System.Windows.Forms.Button button1;
        
private System.Windows.Forms.TextBox textBox1;
        
private System.Windows.Forms.ProgressBar progressBar1;
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>
        private System.ComponentModel.Container components = null;

        
public Form2()
        {
            
//
            
// Windows 窗体设计器支持所必需的
            
//
            InitializeComponent();

            
//
            
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            
//
        }

        
/// <summary>
        
/// 清理所有正在使用的资源。
        
/// </summary>
        protected override void Dispose( bool disposing )
        {
            
if( disposing )
            {
                
if(components != null)
                {
                    components.Dispose();
                }
            }
            
base.Dispose( disposing );
        }

        
#region Windows 窗体设计器生成的代码
        
/// <summary>
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>
        private void InitializeComponent()
        {
            
this.button1 = new System.Windows.Forms.Button();
            
this.textBox1 = new System.Windows.Forms.TextBox();
            
this.progressBar1 = new System.Windows.Forms.ProgressBar();
            
this.SuspendLayout();
            
// 
            
// button1
            
// 
            this.button1.Location = new System.Drawing.Point(120176);
            
this.button1.Name = "button1";
            
this.button1.TabIndex = 1;
            
this.button1.Text = "button1";
            
this.button1.Click += new System.EventHandler(this.button1_Click);
            
// 
            
// textBox1
            
// 
            this.textBox1.Location = new System.Drawing.Point(10488);
            
this.textBox1.Name = "textBox1";
            
this.textBox1.TabIndex = 2;
            
this.textBox1.Text = "textBox1";
            
// 
            
// progressBar1
            
// 
            this.progressBar1.Location = new System.Drawing.Point(104128);
            
this.progressBar1.Name = "progressBar1";
            
this.progressBar1.TabIndex = 3;
            
// 
            
// Form2
            
// 
            this.AutoScaleBaseSize = new System.Drawing.Size(614);
            
this.ClientSize = new System.Drawing.Size(292273);
            
this.Controls.Add(this.progressBar1);
            
this.Controls.Add(this.textBox1);
            
this.Controls.Add(this.button1);
            
this.Name = "Form2";
            
this.Text = "Form2";
            
this.ResumeLayout(false);

        }
        
#endregion


        
delegate  void  myDelegate(int i);
        myDelegate mydelegate 
= null;


        
public void ShowMessage(int i)
        {
            
this.textBox1.Text = i.ToString();
            
this.progressBar1.Value = i;
        }




        
public void MyEvent()
        {
            
for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(
100);
                
this.BeginInvoke(mydelegate, new object[] {i});
            
            }
        }




        
private void button1_Click(object sender, System.EventArgs e)
        {


            mydelegate 
= new myDelegate(ShowMessage);

            System.Threading.ThreadStart tt 
= new ThreadStart(MyEvent);
            Thread myThread 
= new Thread(tt);
            myThread.IsBackground 
= true;
            myThread.Start();

            
        }
    }
}
原文地址:https://www.cnblogs.com/Bruce_H21/p/778872.html