我等待那些线程在主窗体的关闭事件处理程序中完成,但UI线程被阻止,是否有更好的解决方案?
这是代码段:
public partial class Form1 : Form
{
private Thread _worker;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
_worker.Join();
}
我希望显示一个等待工作线程完成的进度表,怎么做?
答案 0 :(得分:0)
您将_worker线程加入当前线程(UI线程)。这就是UI被挂起的原因。
如果你想在申请被关闭之前_worker完成,我想提出以下想法。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Check worker thread complete or not
if (_worker.ThreadState != ThreadState.Stopped)
{
e.Cancel = true;
MessageBox.Show("Not complete, please wait");
}
}
我希望这对你有用。