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

# XTaskQueueDispatchMode

> XTaskQueueDispatchMode

# XTaskQueueDispatchMode

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

## 構文

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

## 定数

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

## 解説

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

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

## 要件

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

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

## 関連項目

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


## Related topics

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