다음을 통해 공유


XAsyncOp

비동기 공급자에 대한 작업 코드를 나타냅니다.

구문

enum class XAsyncOp  : uint32_t  
{  
    Begin,  
    DoWork,  
    GetResult,  
    Cancel,  
    Cleanup  
}  

상수

상수 설명
Begin XAsyncBegin이 호출되면 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다.
이 작업 코드가 구현된 경우 비동기 공급자는 XAsyncSchedule을 호출하거나 중복된 I/O와 같은 외부 비동기 프로세스를 시작하여 비동기 작업을 시작해야 합니다.
참고 이 작업 코드에 대해 수행되는 비동기 작업은 스레드를 차단해서는 안됩니다.
DoWork 작업 예약을 위한 XAsyncSchedule이 호출되면 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다.
이 작업 코드를 구현한 경우 비동기 공급자는 비동기 작업을 수행한 다음, XAsyncComplete를 호출하고 requiredBufferSize에서 데이터 페이로드 크기를 지정합니다. 추가 작업을 수행해야 하는 경우 비동기 공급자가 예약한 다음, result에 오류 코드 E_PENDING을 지정하여 XAsyncComplete을 호출할 수 있습니다.
GetResult 비동기 호출이 완료되고 사용자가 결과 데이터 페이로드를 가져와야 하는 경우 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다.
XAsyncProviderDatabufferbufferSize 필드의 값이 유효한지 확인되었습니다.
Cancel 비동기 작업을 취소해야 하면 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다.
비동기 공급자는 모든 비동기 작업을 취소하고 result에서 오류 코드 E_ABORT를 지정하여 XAsyncComplete를 호출합니다.
정리 비동기 호출이 완료되거나 취소되고 컨텍스트의 데이터가 정리될 수 있는 경우 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다.

설명

비동기 공급자에 대한 XAsyncProvider 콜백 함수는 반복적으로 호출되고 각 호출에 대해 비동기 공급자가 수행해야 하는 작업은 각 호출에 대해 지정된 작업 코드에 따라 결정됩니다. XAsyncOp은(는) 비동기 공급자가 구현할 수 있는 작업 코드를 나타냅니다.
비동기 공급자는 비동기 작업을 수행하는 데 필요한 XAsyncOp의 작업 코드만 구현해야 합니다. 예를 들어, 정리를 요구하지 않는 비동기 I/O 작업을 수행하는 비동기 공급자는 XAsyncOp::GetResult을 구현하기만 하면 됩니다.

XAsyncOp에서 DoWork, GetResultCleanup 작업 코드를 구현하는 비동기 공급자의 예제에 대해서는 비동기 프로그래밍 모델의 "비동기 라이브러리" 섹션을 참조하세요.

요구 사항

헤더: XAsyncProvider. h

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

참고 항목

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