CMsgThread 類別
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
類別 CMsgThread
是背景工作執行緒類別,會將要求排入佇列執行緒,以非同步方式完成。 若要使用此類別,請從中衍生類別,並覆寫 CMsgThread::ThreadMessageProc 成員函式。
ThreadMessageProc成員函式會執行每個要求。 您的用戶端函式和 ThreadMessageProc 成員函式必須共用 CMsg 物件中參數的通用定義。
交涉的機制會告知背景工作執行緒結束。 一般而言,這會是 CMsg 類別 uMsg 訊息碼的一個值。
最好先從衍生類別的解構函式傳送此訊息,並在完成衍生類別的解構之前呼叫 CMsgThread::WaitForThreadExit 成員函式。
受保護的資料成員 | Description |
---|---|
m_hSem | 表示用於訊號的控制碼。 |
m_Lock | 保護清單的存取。 |
m_lWaiting | 表示正在等候可用執行緒。 |
m_ThreadQueue | 覆寫此佇列以外的專案 CMsgThread::GetThreadMsg 成員函式和區塊。 |
成員函數 | Description |
CMsgThread | 建構 CMsgThread 物件。 |
CreateThread | 建立執行緒。 |
GetThreadHandle | 擷取執行緒控制碼。 |
GetThreadID | 擷取執行緒的識別碼。 |
GetThreadPriority | 擷取目前的執行緒優先順序。 |
PutThreadMsg | 將背景工作執行緒執行的要求排入佇列。 |
ResumeThread | 繼續背景工作執行緒的作業。 |
SetThreadPriority | 將執行緒的優先順序設定為新的值。 |
SuspendThread | 暫停執行中線程的作業。 |
WaitForThreadExit | 封鎖直到執行緒在呼叫 CMsgThread::SuspendThread 成員函式之後結束為止。 |
可覆寫的成員函式 | Description |
GetThreadMsg | 擷取包含要求的佇列 CMsg 物件。 |
OnThreadInit | 提供執行緒上的初始化。 |
ThreadMessageProc | 處理要求。 這是純虛擬成員函式。 |