다음을 통해 공유


비동기 함수

나타내는 비동기 공급자.

template<class Fn, class... ArgTypes>
   future<typename result_of<Fn(ArgTypes...)>::type>;
      async(Fn&& fn, ArgTypes&&... args);
template<class Fn, class... ArgTypes>
   future<typename result_of<Fn(ArgTypes...)>::type>;
      async(launch policy, Fn&& fn, ArgTypes&&... args);

매개 변수

  • policy
    A 시작 값입니다.

설명

약어의 정의:

dfn

호출한 결과 decay_copy(forward<Fn>(fn)).

dargs

호출의 결과 decay_copy(forward<ArgsTypes>(args…)).

Ty

result_of<Fn(ArgTypes…)>::type 형식.

첫 번째 템플릿 함수를 반환 합니다. async(launch::any, fn, args…).

두 번째 함수 반환은 future<Ty> 개체 비동기 상태 연결 결과 값을 함께 보유 하 고 dfn 및 dargs 스레드 개체는 별도의 실행 스레드를 관리 하 고.

하지 않는 한 decay<Fn>::type 형식인 이외의 시작, 두 번째 함수 오버 로드 확인에 참여 하지 않습니다.

If policy is launch::any, the function might choose launch::async or launch::deferred.이 구현에서는 함수를 사용 하 여 launch::async.

경우 policy 는 launch::async, 함수 계산 스레드를 만드는 INVOKE(dfn, dargs..., Ty).에 대 한 결과 기다리지 않고 스레드를 만든 다음 함수를 반환 합니다.시스템에 새 스레드를 시작할 수 없는 경우 함수를 throw 된 system_error 오류 코드가 있는 resource_unavailable_try_again.

경우 policy 입니다 launch::deferred, 함수 지주로 비동기 연결된 상태 표시는 지연 된 함수 반환 합니다.첫 번째 호출이 적용 준비 하려면 연결 된 비동기 상태에 대 한 대기 시간이 아닌 모든 함수를 평가 하 여 지연 된 함수를 호출 하 INVOKE(dfn, dargs..., Ty).

모든 경우에 비동기 연결된의 상태는 future 개체에 설정 된 준비 평가 될 때까지 INVOKE(dfn, dargs…, Ty) 예외를 throw 하거나 정상적으로 반환 완료.관련된 비동기 상태 결과 예외가 throw 된 경우 예외가 발생 하거나 계산 하 여 반환 되는 값입니다.

Pseudo-function INVOKE 에 정의 된 <functional>.

요구 사항

헤더: 미래

네임 스페이스: std

참고 항목

참조

<future>

result_of Class

향후 클래스

기타 리소스

헤더 파일