task_completion_event 類別
task_completion_event
類別可讓您延遲執行工作,直到滿足某條件,或是為了回應外部事件而開始工作。
語法
template<typename _ResultType>
class task_completion_event;
template<>
class task_completion_event<void>;
參數
_ResultType
這個 task_completion_event
類別的結果類型。
成員
公用建構函式
名稱 | 描述 |
---|---|
task_completion_event | 建構 task_completion_event 物件。 |
公用方法
名稱 | 描述 |
---|---|
set | 已多載。 設定工作完成事件。 |
set_exception | 已多載。 將例外狀況傳播至與這個事件相關聯的所有工作。 |
備註
在需要您建立要完成之工作的情況下,使用從工作完成事件建立的工作,以藉此將其接續排程在未來的某個時間點執行。 task_completion_event
必須與您建立的工作具有相同類型,而且在具有該類型值的工作完成事件上呼叫 set 方法,將導致關聯工作完成,並將該值當做結果提供給其接續。
如果永不發出工作完成事件的信號,則當工作完成事件解構時,將會取消從中建立的所有工作。
task_completion_event
的行為就像智慧型指標,應該依值傳遞。
繼承階層架構
task_completion_event
需求
標頭: ppltasks.h
命名空間: concurrency
set
設定工作完成事件。
bool set(_ResultType _Result) const ;
bool set() const ;
參數
_結果
要設定此事件的結果。
傳回值
如果方法在設定事件時成功,則會傳回 true
。 勾選事件設定,則會傳 false
回 。
備註
如果存在多個或並行呼叫 set
,則只有第一個呼叫會成功,且其結果(如果有的話)會儲存在工作完成事件中。 會忽略其餘的集合,而且方法會傳回 false。 當您設定工作完成事件時,從該事件建立的所有工作都會立即完成,而且會排程其接續。 具有 _ResultType
以外的 void
工作完成物件會將值傳遞至其接續。
set_exception
將例外狀況傳播至與這個事件相關聯的所有工作。
template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;
__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;
參數
_E
例外狀況型別。
_除了
要設定的例外狀況。
_ExceptionPtr
要設定的例外狀況指標。
傳回值
task_completion_event
建構 task_completion_event
物件。
task_completion_event();