gpt4 book ai didi

c# - 您如何通知父线程所有子线程都已终止?

转载 作者:太空狗 更新时间:2023-10-29 20:08:53 25 4
gpt4 key购买 nike

我有一个要移植到 WPF 的控制台应用程序。该应用程序有 3 个工作线程,在一些输出结果打印到屏幕之前,它们都连接到主线程。我的理解是,如果我尝试在 WPF 应用程序中做同样的事情,GUI 将被阻止并且不会响应用户。那么如何通知父线程所有线程都完成了它们的工作呢?我认为解决方案将涉及委托(delegate)和事件(或者可能是 BackgroundWorker?),但我不清楚如何在线程终止时调用回调。

原始代码:

foreach (Thread t in threadList)
{
t.Start();
}

foreach (Thread t in threadList)
{
t.Join();
}

// print some results here

最佳答案

如果您使用三个 BackgroundWorker,您可以使用事件 RunWorkerCompleted 来通知其中一个工作人员已完成:在启动工作人员之前将计数器设置为 3然后在 RunWorkerCompleted 调用的方法中递减并检查此计数器,如果它达到 0,则表示已完成。

关于c# - 您如何通知父线程所有子线程都已终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2974895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com