110,536
社区成员
发帖
与我相关
我的任务
分享
private void button4_Click(object sender, EventArgs e)
{
Parallel.Invoke(
SetLable1Text,
SetLable2Text
);
}
void SetLable1Text()
{
label1.Invoke(new Action(() => {
label1.Text = "正在执行...";
Thread.Sleep(TimeSpan.FromSeconds(3));
label1.Text = "执行完毕";
}));
}
void SetLable2Text()
{
label2.Invoke(new Action(() =>
{
label2.Text = "正在执行...";
Thread.Sleep(TimeSpan.FromSeconds(2));
label2.Text = "执行完毕";
}));
}
Invoke 方法会阻塞界面线程,所以会造成程序假死,也就是不响应任何用户操作。
别用Thread.Sleep,改用Task.Delay和异步方法。