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();

另請參閱

concurrency 命名空間