Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Background processing in a thread

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading; public class Form1 : System.Windows.Forms.Form {     private System.Windows.Forms.Label label1;     private System.Windows.Forms.Button button1;     private System.Windows.Forms.Label ValueLabel;     private System.Windows.Forms.Button button2;     private System.ComponentModel.Container components = null;     private Thread fThread;     private int fValue;     public Form1() {         fValue = 0;         this.label1 = new System.Windows.Forms.Label();         this.button1 = new System.Windows.Forms.Button();         this.ValueLabel = new System.Windows.Forms.Label();         this.button2 = new System.Windows.Forms.Button();         this.SuspendLayout();         this.label1.Location = new System.Drawing.Point(24, 32);         this.label1.Size = new System.Drawing.Size(80, 16);         this.label1.Text = "Value of Data:";         this.button1.Location = new System.Drawing.Point(232, 32);         this.button1.Text = "&Update";         this.button1.Click += new              System.EventHandler(this.button1_Click);         this.ValueLabel.Location = new System.Drawing.Point(120, 32);         this.button2.Location = new System.Drawing.Point(104, 88);         this.button2.Name = "button2";         this.button2.RightToLeft =              System.Windows.Forms.RightToLeft.No;         this.button2.Size = new System.Drawing.Size(96, 23);         this.button2.Text = "Start Thread";         this.button2.Click += new              System.EventHandler(this.button2_Click);         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);         this.ClientSize = new System.Drawing.Size(336, 141);         this.Controls.AddRange(new System.Windows.Forms.Control[] {           this.button2,           this.ValueLabel,           this.button1,           this.label1});         this.ResumeLayout(false);     }     [STAThread]     static void Main() {         Application.Run(new Form1());     }     private void ThreadProc() {         while (fValue < 1000) {             Thread.Sleep(1000);             fValue++;         }     }     private void button2_Click(object sender, System.EventArgs e) {         fThread = new Thread(new ThreadStart(ThreadProc));         fThread.IsBackground = true;         fThread.Start();     }     private void button1_Click(object sender, System.EventArgs e) {         this.ValueLabel.Text = fValue.ToString();     } }