我有一个Borland C++项目,我看到一个工作线程可以用来将任务委派给主线程并等待任务完成的synchronize()方法。在C#中,有一个类似的Control.Invoke()方法。对于GUI和控制台应用程序,在Visual Studio中使用C++时有什么相似之处吗? SendMessage()出现在我的脑海里,但是等于上面两个?如何将任务委托给主线程并等待其执行完成?
0
A
回答
1
SendMessage适用于GUI应用程序,其中主线程具有消息队列。对于控制台应用程序,没有通用的方法。您需要首先决定主线程如何处理这些请求。如果Console应用程序的主线程具有消息队列,则SendMessage也可以。您可以考虑另一种方式,例如使用事件,每个事件取决于主应用程序线程的行为以及处理来自其他线程的请求的能力。
+0
'SendMessage'接受HWND,所以它不适用于(纯)控制台应用程序。你可以使用'PostThreadMessage',但你必须自己处理等待 - 'PostThreadMessage'是一个同步。 – eran
+0
@eran,谢谢Alex和eran的回复。 –
相关问题
- 1. 等待RunOnUIThread完成并继续执行其余任务
- 2. 等待程序完成其任务
- 3. 主线程不会等待另一个线程完成执行
- 4. 有主线程等待一个线程完成任务(但没有完成)
- 5. 等待线程完成执行上
- 6. 等待线程池完成执行
- 7. 等待线程完成执行
- 8. 等待委托方法在ios中完成执行
- 9. .NET线程:如何等待其他线程完成一些任务
- 10. 确保主线程等待所有任务完成
- 11. 组合任务等待委托
- 12. 使主程序等待线程完成
- 13. 同时执行所有任务并等待完成?
- 14. 等待执行程序服务中的线程完成
- 15. 如何在执行下一条语句之前等待NSURLConnection委托完成?
- 16. 如何从另一个线程通知等待任务完成?
- 17. SSIS等待执行进程任务完成
- 18. 取消任务并等待它完成
- 19. 如何等待当前线程执行,并执行其他线程completedly
- 20. 如何让主线程等待所有子线程完成?
- 21. C#等待任务完成
- 22. 等待任务完成
- 23. ScheduledExecutorService等待任务完成
- 24. JavaFX - 等待任务完成
- 25. 在等待任务完成
- 26. 如何等待线程在C#中完成执行?
- 27. 如何等待任务完成
- 28. 如何等待任务完成Task.WhenAll?
- 29. 如何等待我的线程工厂完成其所有任务?
- 30. 执行AutoIt并等待完成
请注意,这不是关于C++,而是关于操作系统和系统特定的库。 C++没有任何多任务支持标准化(但...) – littleadv