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

# XTaskQueueDispatchMode

> XTaskQueueDispatchMode

# XTaskQueueDispatchMode

タスク キューのコールバックがどのように処理されるかを記述します。

## 構文

```cpp theme={null}
typedef enum class XTaskQueueDispatchMode  : uint32_t  
{  
    Manual,  
    ThreadPool,  
    SerializedThreadPool,  
    Immediate  
} XTaskQueueDispatchMode  
```

## 定数

| 定数 | 説明 |
| - | - |
| Manual | コールバックは自動的にはディスパッチされません。このディスパッチ モードを使用してポートに送信されたコールバックはキューに登録されますが、[XTaskQueueDispatch](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md) によって手動でディスパッチする必要があります。 **注:** Windows メッセージをポンプするスレッドがある場合:<ul><li>ワーク ポートに対するコールバックをディスパッチしないでください</li><li>完了ポートに対するコールバックをディスパッチする場合は、そのスレッドで Windows メッセージのポンプを継続する必要があります</li></ul> 詳細については、[手動タスク キューの作成](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design-howto/creating-manual-task-queue.md) を参照してください。 |
| ThreadPool | このディスパッチ モードを使用してポートに送信されたコールバックはキューに登録され、システム スレッド キューで自動的にディスパッチされます。タスク キューは呼び出しを並列に実行し、スレッド プール スレッドが利用可能になると順にタスク キューから呼び出しを取り出して実行します。 スレッド プール タスク キューの作成に関する詳細については、[スレッド プール タスク キューの作成](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design-howto/creating-thread-pool-task-queue.md) を参照してください。 |
| SerializedThreadPool | このディスパッチ モードを使用してポートに送信されたコールバックはキューに登録され、システム スレッド キューで自動的にディスパッチされます。`ThreadPool` とは異なり、タスク キューはスレッド プール上で呼び出しを一度に 1 つずつ直列に実行します。 |
| Immediate | コールバックはまったくキューに登録されず、送信元のスレッドで直ちに実行されます。イミディエイト ディスパッチ モードを実装する例については、[コンポジット タスク キューの作成](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design-howto/creating-composite-task-queue.md) を参照してください。 |

## 解説

この列挙型は [XTaskQueueCreate](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuecreate.md) によって使用され、タスク キューのワーク ポートおよび完了ポートのディスパッチ モードを指定します。

ワーク ポートと完了ポートで異なるディスパッチ モードを使用できます。たとえば、ワーク ポートにスレッド プール ディスパッチ モードを使用してシステム スレッド キューで自動的にコールバックをキューに登録して並列に実行し、完了ポートに手動ディスパッチ モードを使用して Windows メッセージ ループ スレッド上で手動でコールバックをキューに登録して実行することができます。詳細については、[Windows メッセージ ループを使用したタスク キューの使用](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design-howto/task-queue-windows-msg-loop.md) を参照してください。

## 要件

**ヘッダー:** XTaskQueue.h

**サポートされているプラットフォーム:** Windows、XBOX One ファミリ本体、XBOX Series 本体

## 関連項目

[XTaskQueue members](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/xtaskqueue_members.md)\
[非同期プログラミング モデル](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-programming-model.md)\
[非同期タスク キューの設計](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design.md)


## Related topics

- [XTaskQueueCreate](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuecreate.md)
- [XTaskQueueDispatch](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md)
- [XTaskQueue (API の内容)](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/xtaskqueue_members.md)
- [PlayFab 統合 SDK での非同期呼び出し](https://docs.xbox.com/ja-jp/services/playfab/sdks/unified-sdk/async-model.md)
- [非同期呼び出しの実行](https://docs.xbox.com/ja-jp/services/playfab/sdks/c/async.md)
