Skip to main content

XAsyncBlock

비동기 호출의 수명을 나타냅니다.

구문

멤버

queue
형식: XTaskQueueHandle
선택 사항. 비동기 호출 및 선택적으로 callback에 지정된 완료 콜백에 대한 작업 큐의 핸들입니다. null로 설정되면 비동기 호출은 프로세스 작업 큐를 사용하려고 시도합니다. 프로세스 작업 큐도 null로 설정되어 있으면 비동기 호출이 실패하고 E_NO_TASK_QUEUE를 반환합니다. context
형식: void*
선택 사항. 완료 콜백에 전달되는 정보에 대한 포인터입니다. callback
형식: XAsyncCompletionRoutine*
호출이 완료될 때 호출될 선택적 콜백입니다. internal
형식: unsigned char[sizeof(void*) * 4]
내부용으로 예약되어 있습니다.

설명

XAsyncBlock 구조체는 비동기 호출의 수명을 나타냅니다. XAsyncBlock을 사용하여 먼저 비동기 호출을 호출하고 해당 호출에 대한 선택적 완료 콜백을 제공합니다. 그런 다음 XAsyncBlock을 특정 호출의 호출에 대한 핸들로 사용할 수 있습니다. 비동기 호출을 호출하면 실행을 위해 작업 큐에 제출됩니다. 작업 큐를 사용하면 어떤 스레드가 비동기 호출을 실행하고 완료 콜백이 지정된 경우 어떤 스레드가 완료 콜백을 호출할지 결정할 수 있습니다. 비동기 호출을 호출하기 위해 작업 큐를 만들 필요는 없습니다. queue에 작업 큐가 지정되지 않은 경우 기본적으로 프로세스 작업 큐가 사용됩니다. 일반적으로 프로세스 작업 큐는 시스템 스레드 풀에 비동기 호출을 디스패치하며 완료 콜백은 해당 스레드가 alertable 상태일 때 비동기 호출을 시작한 스레드에서 호출됩니다. 작업 큐의 디스패치 모드에 대한 자세한 내용은 비동기 작업 큐 디자인을 참조하세요.
비동기 호출을 호출한 후에는 해당 비동기 호출에 대한 XAsyncBlock의 매개 변수를 수정하지 마세요.

완료 콜백

비동기 호출에 대한 완료 콜백을 제공하기 위해 callback에 콜백 함수에 대한 포인터를 선택적으로 지정할 수 있습니다. 완료 콜백은 비동기 호출이 완료된 후 실행되는 콜백 함수입니다. 완료 콜백에 대한 정보를 나타내는 context에 포인터를 지정하여 완료 콜백에 컨텍스트별 데이터를 제공할 수 있습니다. callback에 완료 콜백을 지정하지 않으면 XAsyncGetStatus 함수를 사용하여 비동기 호출이 완료되었는지 주기적으로 확인한 다음 필요에 따라 XAsyncGetResultXAsyncGetResultSize를 사용하여 완료된 작업에서 결과를 가져올 수 있습니다. 완료 콜백에 대한 자세한 내용은 XAsyncCompletionRoutine을 참조하세요.

XAsyncBlock 구현

XAsyncProvider를 사용하여 XAsyncBlock으로 자체 비동기 기능을 구현한 다음 XTaskQueue 함수를 사용하여 해당 기능을 호출할 수 있습니다. 또한 XAsyncRun을 호출하여 비동기 호출을 호출할 수 있습니다. 이는 XAsyncWork에서 지정한 콜백 함수를 실행하고 추적하기 위해 내부적으로 XAsyncProvider를 사용하는 도우미 함수입니다. XAsyncProviderXAsyncBlock을 사용하여 자체 비동기 기능을 구현하는 것에 대한 자세한 내용은 비동기 프로그래밍 모델을 참조하세요. XAsyncBlock은 비동기 호출의 수명 동안 메모리에 남아 있어야 합니다. 그러나 XAsyncBlock이 동적으로 할당된 경우 비동기 호출의 완료 콜백 내에서 안전하게 삭제할 수 있습니다.

요구 사항

헤더: XAsync.h 지원되는 플랫폼: Windows, XBOX One 제품군 콘솔 및 XBOX Series 콘솔

개념 설명서

함께 보기

XAsync 멤버
XAsyncProvider 멤버
비동기 프로그래밍 모델
마지막 수정일 2026년 8월 24일