winform下简单多线程例子

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();

            
        }
    }
}

版权声明:本文为Bruce_H21原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/bruce_h21/archive/2007/06/11/778872.html