2011-01-14 212 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

相關問題