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

时间:2011-10-02 07:28:18

标签: c# c++ multithreading

我有一个Borland C ++项目,我看到一个synchronize()方法,工作线程可以使用该方法将任务委托给主线程并等待任务完成。在C#中,有一个类似的Control.Invoke()方法。在Visual Studio中使用C ++进行GUI和控制台应用程序时,有什么类似的东西吗?我想到了SendMessage(),但这相当于两个以上吗?

1 个答案:

答案 0 :(得分:1)

对于GUI应用程序,SendMessage是可以的,其中主线程具有消息队列。对于控制台应用程序,没有通用的方法。您需要先确定主线程应如何处理此类请求。如果Console应用程序的主线程具有消息队列,则SendMessage也可以。您可以考虑其他方法,例如,使用事件,Everytning取决于主应用程序线程行为及其处理来自其他线程的请求的能力。