如何将任务委托给主线程并等待它的执行完成

本文关键字:等待 执行 线程 任务 | 更新日期: 2023-09-27 18:10:25

我有一个Borland c++项目,在那里我看到一个sync()方法,一个工作线程可以使用它来将任务委托给主线程并等待任务完成。在c#中,有一个类似的Control.Invoke()方法。在Visual Studio中为GUI和控制台应用程序使用c++时,有什么相似之处吗?我想到了SendMessage(),但这是否等同于上面两个?

如何将任务委托给主线程并等待它的执行完成

SendMessage适用于GUI应用程序,其中主线程有一个消息队列。对于控制台应用程序,没有通用的方法。首先,你需要决定主线程应该如何处理这样的请求。如果Console应用程序的主线程有消息队列,SendMessage也可以。您可以考虑另一种方式,例如,使用事件,一切都取决于主应用程序线程的行为及其处理来自其他线程的请求的能力。