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 | 비동기 호출이 완료되고 사용자가 결과 데이터 페이로드를 가져와야 하는 경우 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다. XAsyncProviderData의 buffer 및 bufferSize 필드의 값이 유효한지 확인되었습니다. |
Cancel | 비동기 작업을 취소해야 하면 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다. 비동기 공급자는 모든 비동기 작업을 취소하고 result에서 오류 코드 E_ABORT를 지정하여 XAsyncComplete를 호출합니다. |
정리 | 비동기 호출이 완료되거나 취소되고 컨텍스트의 데이터가 정리될 수 있는 경우 이 작업 코드를 사용하여 비동기 공급자가 호출됩니다. |
설명
비동기 공급자에 대한 XAsyncProvider 콜백 함수는 반복적으로 호출되고 각 호출에 대해 비동기 공급자가 수행해야 하는 작업은 각 호출에 대해 지정된 작업 코드에 따라 결정됩니다.
XAsyncOp
은(는) 비동기 공급자가 구현할 수 있는 작업 코드를 나타냅니다.
비동기 공급자는 비동기 작업을 수행하는 데 필요한 XAsyncOp
의 작업 코드만 구현해야 합니다. 예를 들어, 정리를 요구하지 않는 비동기 I/O 작업을 수행하는 비동기 공급자는 XAsyncOp::GetResult
을 구현하기만 하면 됩니다.
XAsyncOp
에서 DoWork
, GetResult
및 Cleanup
작업 코드를 구현하는 비동기 공급자의 예제에 대해서는 비동기 프로그래밍 모델의 "비동기 라이브러리" 섹션을 참조하세요.
요구 사항
헤더: XAsyncProvider. h
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔