promotion image of download ymail app
Promoted
CYHung 發問時間: 電腦與網際網路程式設計 · 1 0 年前

請問關於MFC中的CWinThread

User-interface thread與worker thread有什麼不一樣?各運用在哪些場合?謝謝

1 個解答

評分
  • 1 0 年前
    最佳解答

    其實 Windows 對於User Interface thread 和 worker thread 的定義非常模糊

    任何時間你都可以將 User Interface thread 和 worker thread 互換, 一般說來

    只要有User Interface (例如 Winodw 或 Dialog)都可以稱為User Interface thread,

    而 worker thread 則是沒有 User Interface 隱藏起來, 簡單的判別方式則是看

    目前這一個 Thread 有沒有下面的迴圈

    while( GetMessage( &msg, NULL, 0, 0 ) )

    {

    TranslateMessage(&msg);

    DispatchMessage(&msg);

    }

    而MFC中因為這個回圈會被包裹在MFC的 CWinThread 的 Run()函數中

    所以你只要觀察是否有使用 Run() 函數, 大概可以判別User Interface thread,

    或是 worker thread

    2006-06-14 01:25:27 補充:

    使用的時機 User Interface thread 是給USER知道現在程式仍在運行, Work Thread 則是用於需要時間的 I/O動作例如: 檔案總管在Copy檔案時會有一個動畫不停重複, 顯示動畫的部分是User Interface thread, 而真正再做檔案Copy的則是Worker Thread.

    參考資料: Microsoft SDK
    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。