我有一个控制台应用程序正在移植到 WPF。该应用程序有 3 个工作线程,在将一些输出结果打印到屏幕上之前,这些线程都连接到主线程。我的理解是,如果我尝试在 WPF 应用程序中执行相同的操作,GUI 将被阻止并且不会响应用户。那么如何通知父线程所有线程都已完成工作呢?我认为解决方案将涉及委托和事件(或者可能是BackgroundWorker?),但我不清楚如何在线程终止时调用回调。
原始代码:
foreach (Thread t in threadList)
{
t.Start();
}
foreach (Thread t in threadList)
{
t.Join();
}
// print some results here
如果您使用三个BackgroundWorker
s,您可以使用该事件RunWorkerCompleted
注意其中一个工作人员已完成:在启动工作人员之前,将计数器设置为 3,然后递减并在调用的方法中检查该计数器RunWorkerCompleted
如果它达到 0,你就完成了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)