XTaskQueueGetPort
지정된 포트에 대한 작업 큐 포트 핸들을 반환합니다.
구문
HRESULT XTaskQueueGetPort(
XTaskQueueHandle queue,
XTaskQueuePort port,
XTaskQueuePortHandle* portHandle
)
매개 변수
queue _In_
형식: XTaskQueueHandle
포트를 가져올 작업 큐입니다.
port _In_
형식: XTaskQueuePort
가져올 포트입니다.
portHandle _Out_
형식: XTaskQueuePortHandle*
지정된 포트에 대한 작업 큐 포트 핸들입니다.
반환 값
형식: HRESULT
HRESULT 성공 또는 오류 코드입니다.
비고
참고 항목
이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.
작업 큐 포트 핸들은 작업 큐의 소유이며, 닫을 필요가 없습니다. 복합 작업 큐를 만들 때 사용됩니다.
다음 예에서는 해당 작업 및 완료 포트가 모두 원래 큐의 작업 포트를 사용하는 복합 큐를 만듭니다. 표준 작업 큐는 다른 큐에서 부분으로 구성된 작업 큐입니다. 표준 작업 큐는 비동기 작업이 다른 작업을 호출해야 할 때 유용하고, 해당 작업에서의 완료는 완료 스레드에서 주기를 낭비하지 말아야 하는 중간 단계입니다.
참고 항목
SubmitCallback 은 XTaskQueueSubmitCallback 함수의 코드 예제에 정의된 도우미 함수입니다.
void CreatingCompositeQueue()
{
XTaskQueueHandle queue;
HRESULT hr = XTaskQueueCreate(
XTaskQueueDispatchMode::ThreadPool,
XTaskQueueDispatchMode::Manual,
&queue);
if (FAILED(hr))
{
printf("failed to create task queue: 0x%x\r\n", hr);
return;
}
XTaskQueuePortHandle workPort;
// Create a composite queue that uses the work port from
// another queue for both work and completion ports.
hr = XTaskQueueGetPort(queue, XTaskQueuePort::Work, &workPort);
if (FAILED(hr))
{
printf("failed to get work port 0x%x\r\n", hr);
XTaskQueueCloseHandle(queue);
return;
}
XTaskQueueHandle compositeQueue;
hr = XTaskQueueCreateComposite(workPort, workPort, &compositeQueue);
if (FAILED(hr))
{
printf("failed to create composiute queue 0x%x\r\n", hr);
XTaskQueueCloseHandle(queue);
return;
}
// Use the queue as needed
SubmitCallbacks(compositeQueue);
// Wait a while for the callbacks to run
Sleep(1000);
XTaskQueueCloseHandle(compositeQueue);
XTaskQueueCloseHandle(queue);
}
요구 사항
헤더: XTaskQueue.h
라이브러리: xgameruntime.lib
지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔