如何通知父线程所有子线程都已终止?

2024-06-03

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

原始代码:

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

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

// print some results here

如果您使用三个BackgroundWorkers,您可以使用该事件RunWorkerCompleted注意其中一个工作人员已完成:在启动工作人员之前,将计数器设置为 3,然后递减并在调用的方法中检查该计数器RunWorkerCompleted如果它达到 0,你就完成了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通知父线程所有子线程都已终止? 的相关文章

随机推荐

  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • 使用 Javascript 对象模型在 SharePoint 任务上设置“分配给”

    我想创建一个共享点任务并将其分配给我自己 当前用户 在 javascript 对象模型中 我有下面的代码 但我认为我需要设置 spusercollection 对象 而不是设置特定用户 但是 我似乎无法在任何地方找到如何执行此操作的任何示例
  • Vue模板-渲染HTML特殊字符代码

    如何在我的 Vue 模板中完全渲染 HTML 特殊字符代码 例如我有这个 JSON 数据 id post91 slug null title Breakfast 038 Tea 我怎样才能转换Breakfast 038 Tea to Bre
  • 内联执行生成的汇编程序

    我正在阅读以下演示文稿 http wingolog org pub qc 2012 js slides pdf http wingolog org pub qc 2012 js slides pdf其中讨论了 4 10 19 内联 ASM
  • Python 按文件夹模块导入

    我有一个目录结构 example py templates init py a py b py a py and b py只有一个类 名称与文件相同 因为它们是猎豹模板 纯粹出于风格原因 我希望能够在中导入和使用这些类example py像
  • 如何防止默认事件触发但仍允许事件冒泡

    使用 jQuery 使用以下代码 我想防止 href url 在本例中为哈希 在单击时触发 但仍然允许单击事件继续在链上冒泡 请问如何实现这一点 div a href Test a div a click function e stop a
  • 电子邮件 CSS 模板框架?

    任何人都知道任何电子邮件模板 CSS 框架 我目前正在使用引导程序 它可以工作 但不完全是为电子邮件而构建的 我看过 zurb ink 但它似乎对开发人员不太友好 很难让它发挥作用 其他人在那里使用什么 查看MJML https mjml
  • 在 python + Flask + Gunicorn + nginx + Compute Engine 应用程序中从 Google Cloud Storage 读取文件失败

    在 python Flask Gunicorn nginx Compute Engine 应用程序中读取从 Google Cloud Storage 下载的文件失败 代码链接 https github com samuq CE test h
  • Hibernate HQL 查询:如何将集合设置为查询的命名参数?

    给定以下 HQL 查询 FROM Foo WHERE Id id AND Bar IN barList I set id使用查询对象的setInteger 方法 我想设置 barList用一个List对象 但查看 Hibernate 文档和
  • 带故事板的 viewController 自定义 init 方法

    我在重写故事板中设计的自定义 ViewController 的初始化方法时遇到问题 现在我正在做 在我的 mainViewController 中 self customViewController UIStoryboard storybo
  • 我们如何查询Kibana?

    我们如何使用 REST API 请求 Kibana 来获取可视化请求 和回应 Like this 我想使用 NodeJS 来操作 Kibana 的结果 目的是我想以编程方式 通过 REST API 直接查询 Kibana 以获取 ES 请求
  • 指定自定义应用程序上下文

    我们正在将一些数据服务从使用 jersey spring 的 Jersey 1 x 迁移到使用 jersey spring3 的 Jersey 2 x 我们有一些继承自 JerseyTest 的测试类 其中一些类使用 web xml 文件中
  • 使用 sed 替换复杂模式

    我想使用 sed 命令替换模式 要删除的图案如下所示 带有一个空格 var 0xaae8 x6A x6F x69 x6E x72 x65 x76 x65 x72 x73 x65 x73 x70 x6C x69 x74 x3E x74 x70
  • 使用空函数调用 hana::is_valid 的用途是什么?

    Boost Hana https www boost org doc libs 1 61 0 libs hana doc html index html offers boost hana is valid https www boost
  • jmeter 侦听器每秒点击次数和复合图生成的图表不正确

    学习使用 jmeter 并在读取图形侦听器输出时遇到问题 creating Thread group with number thread 8 ram up 1 and loop forever 随着时间的推移添加侦听器活动线程 每秒点击次
  • 找不到模块:javafx.controls

    我已经下载了JavaFX SDK 解压它并设置PATH TO FX系统变量 如下本说明 https openjfx io openjfx docs install javafx 我使用了以下代码示例 import javafx applic
  • 如何使用 OllyDbg 绕过 IsDebuggerPresent?

    我真的不明白如何绕过 IsDebuggerPresent 我想我应该找到用于调试的寄存器 然后将其设置为 0 以欺骗 IsDebuggerPresent 但我不知道该怎么做 我尝试在谷歌上搜索 甚至尝试了一些解决方案 但它对我来说并没有真正
  • 动态选择和更新 LINQ 结果集中的列值

    我有一个场景 其中存在 LINQ 结果集 我使用了以下查询 var stockDetails from d in db BloodBanks where d bbUserName Session username ToString sele
  • Python - 包和设置文件

    我有一个 python 包 需要从我的项目目录中提取设置 这是我的项目当前的结构 Project bin mypackage package files Project myproject project files start py se
  • 如何通知父线程所有子线程都已终止?

    我有一个控制台应用程序正在移植到 WPF 该应用程序有 3 个工作线程 在将一些输出结果打印到屏幕上之前 这些线程都连接到主线程 我的理解是 如果我尝试在 WPF 应用程序中执行相同的操作 GUI 将被阻止并且不会响应用户 那么如何通知父线