CAMSchedule 類別
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
類別 CAMSchedule
會實作參考時鐘的排程器。
公用方法 | Description |
---|---|
CAMSchedule | 建構函式方法。 |
~CAMSchedule | 解構函式方法。 虛擬。 |
GetAdviseCount | 擷取擱置的建議要求數目。 |
GetNextAdviseTime | 擷取下一個建議要求的時間。 |
AddAdvisePacket | 將建議要求新增至擱置要求清單。 |
Unadvise | 移除建議要求。 |
建議 | 分派排程指定時間或更早時間的所有要求。 |
GetEvent | 擷取事件控制碼,用來發出下一個建議時間的變更訊號。 |
備註
這個協助程式物件會維護參考時鐘的建議要求清單。 CBaseReferenceClock類別會使用它來協助排程建議要求。 時鐘會以下列方式使用此物件:
- 時鐘會建立背景工作執行緒來處理排程。
- 背景工作執行緒會呼叫 CAMSchedule::GetEvent 方法,以從排程器擷取事件控制碼。 它會等候此事件,一開始會有無限逾時。
- 若要排程新的建議要求,時鐘會呼叫 CAMSchedule::AddAdvisePacket 方法。 建議要求可以是一次性或定期要求。 排程器會依時間順序保留要求清單。
- 如果要求新增至清單前端,排程器會發出事件訊號。 (清單一開始是空的,因此保證第一個要求會發出 event.)
- 當事件發出訊號時,背景工作執行緒會呼叫 CAMSchedule::Advise 方法,並指定目前的參考時間。 如果有任何擱置的要求已過期,排程器會分派這些要求。
- 建議方法會傳回下一個要求的時間。 背景工作執行緒會使用此值來計算新的逾時值。
- 步驟 2 6 無限期重複。
- 若要終止背景工作執行緒,時鐘會設定內部旗標併發出事件的訊號。
在步驟 2 中,事件會發出訊號,或等候逾時。如果事件已發出訊號,表示新要求已新增至清單前端。 背景工作執行緒必須計算新的逾時值。 另一方面,如果等候逾時,表示建議要求已到期且必須分派。 步驟 5 中對建議的呼叫會處理這兩種情況。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|