我想实现的结果很简单,就是用并行的方式去为2个控件赋值,但是结果是窗体会假死,看起来是死锁的样子,不懂为什么,谁能给讲解讲解一下。
代码:
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 = "执行完毕";
}));
}