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();
}
}
Related examples in the same category