共用方式為


CMsgThread 類別

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 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 處理要求。 這是純虛擬成員函式。