如何将任务委托给主线程并等待其执行完成?
How to delegate a task to main thread and wait for it's execution to complete?
我有一个Borland c++项目,在那里我看到一个sync()方法,一个工作线程可以使用它来将任务委托给主线程并等待任务完成。在c#中,有一个类似的Control.Invoke()方法。在Visual Studio中为GUI和控制台应用程序使用c++时,有什么相似之处吗?我想到了SendMessage(),但这是否等同于上面两个?
SendMessage适用于GUI应用程序,其中主线程有一个消息队列。对于控制台应用程序,没有通用的方法。首先,你需要决定主线程应该如何处理这样的请求。如果Console应用程序的主线程有消息队列,SendMessage也可以。您可以考虑另一种方式,例如,使用事件,一切都取决于主应用程序线程的行为及其处理来自其他线程的请求的能力。
相关文章:
- 子线程中的条件变量等待停止主线程中的执行
- 等待所有线程完成一项工作,然后执行另一项工作
- 执行 commaind "systeminfo"后,等待单个对象停止
- 确定QProcess是否已完成执行或正在等待用户输入(或响应)
- 等待(空)似乎导致子项停止执行
- 在 C++11 中从多个线程获取值,而无需等待任何给定线程完成执行
- 我可以在获取我的"std::future"时执行并等待它吗?
- 等待buttonPressed()插槽完成,然后执行buttonRelease()
- QProgresDialog:忙碌的等待栏在功能执行时没有移动
- 在等待输入时执行无限循环
- 执行并行任务,无需等待C++结果
- 在C++中的代码中指定的某个等待时间后执行某个操作
- 在Linux上,从C++调用一个可执行文件,然后等待它完成
- 我如何在Qt中等待线程完成而不阻塞其执行
- 如何在停止io_service之前等待所有挂起的完成处理程序被执行
- 等待执行不可执行脚本的子进程
- 如何将任务委托给主线程并等待其执行完成?
- 我如何执行一个c++函数异步而不是阻塞/等待
- c++条件等待停止执行
- 使QObject在执行函数之前等待其侦听器