XTaskQueueSetCurrentProcessTaskQueue
제공된 작업 큐를 프로세스 전체 작업 큐로 설정합니다.
구문
void XTaskQueueSetCurrentProcessTaskQueue(
XTaskQueueHandle queue
)
매개 변수
queue _In_
형식: XTaskQueueHandle
프로세스의 기본 작업 큐로 설정할 큐입니다.
반환 값
형식: void
설명
참고 항목
이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.
큐를 nullptr로 설정할 수 있으며, 이 경우 XTaskQueueGetCurrentProcessTaskQueue도 nullptr을 반환합니다. 제공된 큐에 해당 핸들이 중복되고 모든 기존 프로세스 작업 큐에서는 해당 핸들이 닫힙니다.
다음 예에서는 기본 프로세스 작업 큐를 바꿉니다. 이 작업 큐는 작업 및 완료 디스패치 모두에 대한 스레드 풀을 사용합니다. 작업 큐 매개 변수를 사용하는 Microsoft GDK(게임 개발 키트) API는 모두 nullptr을 수락하고 프로세스 작업 큐를 대체합니다. 프로세스 작업 큐를 nullptr로 설정할 수도 있습니다. 이 경우 작업 큐 매개 변수가 필요한 Microsoft GDK(게임 개발 키트) API에 null이 제공되면 E_NO_TASK_QUEUE 오류가 발생합니다. 이렇게 하면 Microsoft GDK(게임 개발 키트) API가 기본값으로 작동하는 동시에 필요한 경우 작업 큐 핸들을 엄격하게 제어할 수 있습니다.
void UsingProcessTaskQueue()
{
XTaskQueueHandle queue = nullptr;
XTaskQueueGetCurrentProcessTaskQueue(&queue);
auto callback = [](void*, bool)
{
printf("Work callback invoked.\r\n");
};
HRESULT hr = XTaskQueueSubmitCallback(
queue, XTaskQueuePort::Work,
nullptr, callback);
if (FAILED(hr))
{
printf("Failed to submit callback: %x\r\n", hr);
return;
}
// You can replace the process task queue.
hr = XTaskQueueCreate(
XTaskQueueDispatchMode::Manual,
XTaskQueueDispatchMode::Manual,
&queue);
if (FAILED(hr))
{
printf("Failed to create new task queue: %x\r\n", hr);
return;
}
}
요건
헤더: XTaskQueue.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔