我创建了新线程并启动它!
当新线程运行时,Winform挂起(冻结)
为什么winform挂起?
我希望WinForm在我开始新线程时自由移动
怎么做?
(我不会在这里使用线程池。)
private void button4_Click(object sender, EventArgs e)
{
Thread t1 = new Thread(new ThreadStart(delegate ()
{
Run();
}));
t1.Start();
t1.Join();
MessageBox.Show("Complete");
}
private void Run()
{
int a = 1;
for (int i = 1; i <= 999999999; i++)
{
++a;
}
}
答案 0 :(得分:3)
Read the documentation about Join。
阻止调用线程,直到由此表示的线程 实例终止。
所以,你启动线程,然后你加入,这意味着你的UI线程将阻塞并等待线程完成。
你可以async/await:
private async void button4_Click(object sender, EventArgs e)
{
await Task.Run(Run);
MessageBox.Show("Complete");
}