2011-01-14 208 views
1

我必须发信号通知主线程从一个工作线程运行一些代码。在工作线程的主线程中运行一些代码

由于某些COM问题(在线程上运行它只是失败),该代码必须在主线程中运行。

我开始用的消息和事件(我需要等待代码之前盼着去执行)当我remebered有一些非常简单和直接的方式去做Java和SWT)

来实现它
display.syncExec (new Runnable() { 
    public void run() { 
    if (!myWindow.isDisposed()) 
     myWindow.redraw(); 
    } 

对MFC和windows一般情况类似吗?

+0

Lishi,别忘了管理你的线程上的消息泵! – 2011-01-22 14:22:13

回答

1

您可以使用PostThreadMessage WinAPI函数将WM_USER消息发送给主线程。然后你可以在主线程中处理WM_USER并执行一些必要的操作。

+1

请勿将PostThreadMessage用于也显示用户界面的线程。任何模态循环都会导致这样的消息陷入位桶中。如调整窗口大小时使用,显示消息框,显示对话框。使用PostMessage()。 – 2011-01-14 19:05:20

相关问题