비동기 함수
나타내는 비동기 공급자.
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