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

Descreve como os retornos de chamada da fila de tarefas são processados.

## Sintaxe

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

## Constantes

| Constante | Descrição |
| - | - |
| Manual | Os retornos de chamada não são expedidos automaticamente. Os retornos de chamada enviados a uma porta que usa esse modo de expedição são enfileirados, mas devem ser expedidos manualmente por [XTaskQueueDispatch](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueuedispatch).<br />**Observação:** se você tiver um thread que processa mensagens do Windows:<ul><li>Não expeça retornos de chamada para a porta de trabalho</li><li>Se você expedir retornos de chamada para a porta de conclusão, deverá continuar processando as mensagens do Windows para o thread</li></ul><br />Para obter mais informações, consulte [Criando uma fila de tarefas manual](/pt-BR/build/core-features/common/async/async-task-queue-design-howto/creating-manual-task-queue). |
| ThreadPool | Os retornos de chamada enviados a uma porta que usa esse modo de expedição são enfileirados e expedidos automaticamente na fila de threads do sistema. A fila de tarefas executa as chamadas em paralelo, retirando por vez uma chamada da fila de tarefas para executar à medida que os threads do pool de threads ficam disponíveis.<br />Para obter mais informações sobre como criar uma fila de tarefas de pool de threads, consulte [Criando uma fila de tarefas de pool de threads](/pt-BR/build/core-features/common/async/async-task-queue-design-howto/creating-thread-pool-task-queue). |
| SerializedThreadPool | Os retornos de chamada enviados a uma porta que usa esse modo de expedição são enfileirados e expedidos automaticamente na fila de threads do sistema. Ao contrário de `ThreadPool`, a fila de tarefas executa as chamadas em série, uma de cada vez, no pool de threads. |
| Immediate | Os retornos de chamada não são enfileirados, mas executados imediatamente no thread que os enviou. Para obter um exemplo que implementa o modo de expedição imediata, consulte [Criando uma fila de tarefas composta](/pt-BR/build/core-features/common/async/async-task-queue-design-howto/creating-composite-task-queue). |

## Comentários

Esta enumeração é usada por [XTaskQueueCreate](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueuecreate) para especificar os modos de expedição das portas de trabalho e de conclusão de uma fila de tarefas.

A porta de trabalho e a porta de conclusão podem usar modos de expedição diferentes. Por exemplo, você pode usar o modo de expedição de pool de threads para a porta de trabalho, para enfileirar e executar automaticamente os retornos de chamada em paralelo na fila de threads do sistema, e usar o modo de expedição manual para a porta de conclusão, para enfileirar e executar manualmente os retornos de chamada no thread do loop de mensagens do Windows. Para obter mais informações, consulte [Usando uma fila de tarefas com um loop de mensagens do Windows](/pt-BR/build/core-features/common/async/async-task-queue-design-howto/task-queue-windows-msg-loop).

## Requisitos

**Cabeçalho:** XTaskQueue.h

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

[Membros de XTaskQueue](/pt-BR/reference/system/xtaskqueue/xtaskqueue_members)\
[Modelo de programação assíncrona](/pt-BR/build/core-features/common/async/async-programming-model)\
[Projetando a fila de tarefas](/pt-BR/build/core-features/common/async/async-task-queue-design)


## Related topics

- [XTaskQueueDispatchMode](/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode.md)
- [XTaskQueueDispatch](/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md)
- [XTaskQueueCreate](/reference/system/xtaskqueue/functions/xtaskqueuecreate.md)
