다음을 통해 공유


XAsyncComplete

비동기 공급자에 대한 콜백 함수가 작업을 완료하였고 결과를 반환할 수 있음을 나타냅니다.

구문

void XAsyncComplete(  
         XAsyncBlock* asyncBlock,  
         HRESULT result,  
         size_t requiredBufferSize  
)  

매개 변수

asyncBlock _Inout_
형식: XAsyncBlock*

XAsyncBegin에 전달된 XAsyncBlock에 대한 포인터입니다.

result _In_
형식: HRESULT

콜백 함수에서 수행한 작업의 결과입니다. 작업이 취소되면 E_ABORT으로 설정하도록 합니다. 더 많은 작업을 수행해야 하는 경우에는 E_PENDING으로 설정합니다. 그렇지 않은 경우, 이를 적절한 결과 코드로 설정합니다.

requiredBufferSize _In_
형식: size_t

콜백 함수에서 반환할 데이터 페이로드의 필수 크기(바이트)입니다. 콜백 함수에서 데이터 페이로드를 반환하지 않는 경우 이 값을 0으로 설정합니다. 콜백 함수에서 오류가 반환되는 경우 이 매개 변수는 무시됩니다.

반환 값

형식: void

설명

참고 항목

이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.

이 함수는 비동기 작업을 수행하거나 취소하기 위해 콜백 함수를 호출한 경우에 호출됩니다. 함수는 적절한 결과 코드를 반환하고, 필요한 경우 데이터 페이로드에 대한 정보를 반환합니다. 이 함수를 호출 시 일반적으로 콜백 함수에 대 한 XAsyncOp 작업 코드, 비동기 작업 및 데이터 페이로드의 조합이 결과requiredBufferSize에 제공해야 하는 값을 결정합니다.

XAsyncOp::DoWork 작업 코드로 콜백 함수를 호출한 경우 콜백 함수에서 비동기 작업을 수행해야 합니다. 콜백 함수가 모든 비동기 작업을 완료한 경우 결과를 적절한 오류 코드로 설정합니다. 더 많은 작업을 수행해야 하는 경우, 결과E_PENDING으로 설정합니다. 함수에서 데이터 페이로드를 반환하는 경우, requiredBufferSize를 데이터 페이로드를 반환하는 데 필요한 버퍼의 크기(바이트)로 설정합니다. 그렇지 않으면 requiredBufferSize를 0으로 설정합니다.

XAsyncOp::Cancel 작업 코드로 콜백 함수를 호출한 경우 콜백 함수에서 비동기 작업을 취소해야 합니다. 결과E_ABORT으로 설정하고 requiredBufferSize는 0으로 설정합니다.

요건

헤더: XAsyncProvider. h

라이브러리: xgameruntime.lib

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

참고 항목

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