다음을 통해 공유


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

네임스페이스: 동시성

set

작업 완료 이벤트를 설정합니다.

bool set(_ResultType _Result) const ;

bool set() const ;

매개 변수

_결과
이 이벤트를 설정할 결과입니다.

Return Value

이벤트 설정에 성공하면 메서드가 반환 true 됩니다. 이벤트가 이미 설정된 경우 반환 false 됩니다.

설명

여러 호출 또는 동시 호출 set이 있는 경우 첫 번째 호출만 성공하고 결과(있는 경우)는 작업 완료 이벤트에 저장됩니다. 나머지 집합은 무시되고 메서드는 false를 반환합니다. 작업 완료 이벤트를 설정하면 해당 이벤트에서 만든 모든 작업이 즉시 완료되고 연속 작업이 있는 경우 일정이 예약됩니다. 다른 void 작업이 있는 _ResultType 작업 완료 개체는 해당 연속 작업에 값을 전달합니다.

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
설정할 예외 포인터입니다.

Return Value

task_completion_event

task_completion_event 개체를 생성합니다.

task_completion_event();

참고 항목

concurrency 네임스페이스