> ## 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.

# 方法: プロセス タスク キューの使用

> 方法: プロセス タスク キューの使用

## 例

既定の *プロセス タスク キュー* は、ワークと完了の両方のディスパッチにスレッド プールを使用します。タスク キューのパラメーターを取る 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

- [非同期タスク キューの設計](/ja-jp/build/core-features/common/async/async-task-queue-design.md)
- [方法: タスク キュー ウェイターの使用](/ja-jp/build/core-features/common/async/async-task-queue-design-howto/using-task-queue-waiter.md)
- [方法: 手動タスク キューの作成](/ja-jp/build/core-features/common/async/async-task-queue-design-howto/creating-manual-task-queue.md)
- [方法: 複合タスク キューの作成](/ja-jp/build/core-features/common/async/async-task-queue-design-howto/creating-composite-task-queue.md)
- [方法: スレッド プール タスク キューの作成](/ja-jp/build/core-features/common/async/async-task-queue-design-howto/creating-thread-pool-task-queue.md)
