> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 방법: 프로세스 작업 큐 사용

> 방법: 프로세스 작업 큐 사용

## 예제

기본 \*프로세스 작업 큐(process task queue)\*는 작업 및 완료 디스패치 모두에 스레드 풀을 사용합니다. 작업 큐 매개 변수를 받는 Microsoft Game Development Kit(GDK) API는 모두 `nullptr`을 받아들여 프로세스 작업 큐로 대체합니다. 이는 대체할 수 있습니다. 프로세스 작업 큐를 `nullptr`로 설정할 수도 있습니다. 이 경우, 작업 큐 매개 변수가 필요한 Microsoft Game Development Kit(GDK) API는 `E_NO_TASK_QUEUE` 오류를 발생시킵니다. 이렇게 하면 필요할 때 작업 큐 핸들을 엄격하게 제어할 수 있으면서도 Microsoft Game Development Kit(GDK) API가 기본값으로 작동할 수 있습니다.

다음 예에서는 프로세스 작업 큐를 사용하는 방법을 보여 줍니다.

```c++ theme={null}
void UsingProcessTaskQueue()  
{  
    XTaskQueueHandle queue = GetCurrentProcessTaskQueue();  
  
    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;  
    }  
  
    XTaskQueueSetCurrentProcessTaskQueue(queue);  
  
    XTaskQueueHandle processQueue;  
    XTaskQueueGetCurrentProcessTaskQueue(&processQueue);  
    printf("Process task queue: %p. Our queue: %p\r\n",  
        processQueue, queue);  
    XTaskQueueCloseHandle(processQueue);  
  
    // You can set the process queue to nullptr to force everyone to pass a queue  
    // as a parameter.  
    XTaskQueueSetCurrentProcessTaskQueue(nullptr);  
    XTaskQueueGetCurrentProcessTaskQueue(&processQueue);  
    printf("Process task queue: %p.\r\n",  
        processQueue);  
}  
```

## 참고 항목

[작업 큐 설계](/build/core-features/common/async/async-task-queue-design)


## Related topics

- [방법: Windows 메시지 루프와 함께 작업 큐 사용](/ko/build/core-features/common/async/async-task-queue-design-howto/task-queue-windows-msg-loop.md)
- [방법: 작업 큐 대기자 사용](/ko/build/core-features/common/async/async-task-queue-design-howto/using-task-queue-waiter.md)
- [LocalMultiplayerAgent를 사용하여 프로세스 기반 게임 서버 디버깅](/ko/services/playfab/multiplayer/servers/LocalMultiplayerAgent/run-process-based-gameserver.md)
- [비동기 작업 큐 설계](/ko/build/core-features/common/async/async-task-queue-design.md)
- [XTaskQueueSetCurrentProcessTaskQueue](/ko/reference/system/xtaskqueue/functions/xtaskqueuesetcurrentprocesstaskqueue.md)
