다음을 통해 공유


XTaskQueueGetPort

지정된 포트에 대한 작업 큐 포트 핸들을 반환합니다.

구문

HRESULT XTaskQueueGetPort(  
         XTaskQueueHandle queue,  
         XTaskQueuePort port,  
         XTaskQueuePortHandle* portHandle  
)  

매개 변수

queue _In_
형식: XTaskQueueHandle

포트를 가져올 작업 큐입니다.

port _In_
형식: XTaskQueuePort

가져올 포트입니다.

portHandle _Out_
형식: XTaskQueuePortHandle*

지정된 포트에 대한 작업 큐 포트 핸들입니다.

반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드입니다.

비고

참고 항목

이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.

작업 큐 포트 핸들은 작업 큐의 소유이며, 닫을 필요가 없습니다. 복합 작업 큐를 만들 때 사용됩니다.

다음 예에서는 해당 작업 및 완료 포트가 모두 원래 큐의 작업 포트를 사용하는 복합 큐를 만듭니다. 표준 작업 큐는 다른 큐에서 부분으로 구성된 작업 큐입니다. 표준 작업 큐는 비동기 작업이 다른 작업을 호출해야 할 때 유용하고, 해당 작업에서의 완료는 완료 스레드에서 주기를 낭비하지 말아야 하는 중간 단계입니다.

참고 항목

SubmitCallbackXTaskQueueSubmitCallback 함수의 코드 예제에 정의된 도우미 함수입니다.

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 콘솔

참고 항목

XTaskQueue 멤버
비동기 프로그래밍 모델
비동기 작업 큐 디자인