您的位置:首页 > 编程语言 > C#

C#创建线程三种方式

2014-04-10 18:10 483 查看
1、利用 System.Timers.Timer 创建线程,同时刷新界面显示,利用SynchronizingObject 的属性,出现卡死状态。

System.Timers.Timer t = new System.Timers.Timer();

private void button_Click(object sender, EventArgs e)

{

t.Interval = 100;

t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);

t.Enabled = true;

t.SynchronizingObject = label1;

}

void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

{

for (int i = 0; i < 100; i++)

{

System.Threading.Thread.Sleep(50);

label1.Text = i.ToString();

}

t.Enabled = false;

}

2、利用ystem.Threading.Thread创建线程,刷新界面,界面能够实时显示

private void button1_Click(object sender, EventArgs e)

{

System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(Run));

th.Start();

label1.Text = "";

}

void Run()

{

for (int i = 0; i < 100; i++)

{

Call(i);

}

t.Stop();

}

delegate void UpCallBack(int i);

void Call(int i)

{

if (this.InvokeRequired)

{

UpCallBack up = new UpCallBack(Call);

this.Invoke(up, new Object[] { i });

}

else

{

System.Threading.Thread.Sleep(200);

label1.Text = i.ToString();

}

}

3、利用 System.Timers.Timer 创建线程,同时刷新界面显示,出现卡死状态。

private void button2_Click(object sender, EventArgs e)

{

System.Timers.Timer timer = new System.Timers.Timer();

timer.Enabled = true;

timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);

timer.Interval = 5000;

}

void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)

{

for (int i = 0; i < 100; i++)

{

Call(i);

}

}

3、利用 System.Windows.Forms.Timer 创建线程,同时刷新界面显示,出现卡死状态。

private void button3_Click(object sender, EventArgs e)

{

System.Windows.Forms.Timer tr = new System.Windows.Forms.Timer();

tr.Interval = 5000;

tr.Tick += new EventHandler(tr_Tick);

tr.Start();

}

void tr_Tick(object sender, EventArgs e)

{

for (int i = 0; i < 100; i++)

{

Call(i);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: