110,499
社区成员
发帖
与我相关
我的任务
分享
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(new ThreadStart(() =>
{
//Thread.Sleep(3000);//放这里不阻塞主界面,只阻塞th
label1.BeginInvoke((MethodInvoker)delegate ()
{
//sleep放这里界面卡死,label2不会先变成2,而是等label1改了之后同时变过来,放在这里是阻塞主线程
//你的很卡的任务,需要放在外面执行,显示的时候才放到begininvoke里面
Thread.Sleep(3000);
this.label1.Text = "1";
});
}));
th.Start();
Thread th1 = new Thread(new ThreadStart(() =>
{
Thread.Sleep(1000);
label2.BeginInvoke((MethodInvoker)delegate ()
{
this.label2.Text = "2";
});
}));
th1.Start();
}