다음을 통해 공유


XAsyncBegin

XAsyncBlock을 초기화하고 비동기 공급자에 의한 비동기 작업을 시작합니다.

구문

HRESULT XAsyncBegin(  
         XAsyncBlock* asyncBlock,  
         void* context,  
         const void* identity,  
         const char* identityName,  
         XAsyncProvider* provider  
)  

매개 변수

asyncBlock _Inout_
형식: XAsyncBlock*

비동기 호출에 대한 데이터를 포함하는 XAsyncBlock에 대한 포인터입니다.

context _In_opt_
형식: void*

선택 사항. XAsyncProvider 콜백 함수에 전달된 XAsyncProviderData 개체에 저장되는 컨텍스트 포인터입니다.

identity _In_opt_
형식: void*

선택 사항. 비동기 호출을 식별하는 데 사용할 수 있는 임의 토큰에 대한 포인터입니다.

identityName _In_opt_
형식: char*

선택 사항. 비동기 호출을 제공하는 함수의 이름을 나타내는 문자열입니다. 일반적으로 이 매개 변수의 값은 __FUNCTION__ 컴파일러 매크로로 설정됩니다.

provider _In_
형식: XAsyncProvider*

비동기 호출에 대해 호출할 XAsyncProvider 콜백 함수에 대한 포인터입니다.

반환 값

형식: HRESULT

성공한 경우 S_OK을(를) 반환하고, 그렇지 않으면 오류 코드를 반환합니다. 오류 코드 목록은 오류 코드를 참조하세요.

설명

XAsyncBegin은(는) 비동기 공급자가 비동기 작업을 시작해야 함을 표시하기 위해 호출됩니다. XAsyncBegin이(가) 호출되면 XAsyncGetResult와 같은 다른 XAsyncProvider 함수에서 의미 있는 데이터를 제공합니다.

XAsyncBegin이(가) 호출되면 provider에 지정된 콜백 함수가 호출되어 XAsyncProviderop 매개 변수에 XAsyncOp::Begin을 지정합니다. 콜백 함수가 이 연산 코드를 실행하는 경우 XAsyncSchedule을 호출하거나 외부 방법을 통해 해당 비동기 작업을 시작해야 합니다. XAsyncBegin이(가) 반환되면 콜백 함수가 시스템 정의 스레드에서 비동기 작업을 시작한 것으로 추정됩니다.

참고 항목

공급자에 지정된 콜백 함수는 XAsyncBegin 호출 체인에서 동기식으로 처리됩니다. 콜백 함수를 사용하여 수행한 비동기 작업이 스레드를 차단하면 안 됩니다.

IDID이름 매개 변수를 사용하여 일치하지 않는 콜백 함수 호출 XAsyncOp::BeginXAsyncOp::GetResult을(를) 식별 및 관리할 수 있습니다. 일반적으로 ID 값은 XAsyncBegin을(를) 호출한 함수의 함수 포인터로 설정되고 ID이름 값은 __FUNCTION__ 컴파일러 매크로로 설정됩니다.

요건

헤더: XAsyncProvider. h

라이브러리: xgameruntime.lib

지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

XAsyncProvider 멤버
XAsyncProviderData
XAsyncProvider
XAsyncGetResult
비동기 프로그래밍 모델