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

# Exemplo de limpeza da fila de tarefas

> Exemplo de limpeza da fila de tarefas

Este tópico fornece um exemplo de como limpar uma fila de tarefas quando ela não é mais necessária, para evitar vazamento de recursos. No entanto, uma fila de tarefas não pode simplesmente ser liberada imediatamente. Primeiro, ela deve ser encerrada e esvaziada para
garantir que tudo o que foi enfileirado nela tenha sido executado e, em seguida, liberada.

A [chamada de encerramento](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueueterminate) pode ser configurada para aguardar ou retornar
imediatamente. Se não estiver aguardando, um retorno de chamada pode ser especificado opcionalmente
para ser notificado quando o encerramento for totalmente concluído. Se houver
[portas manuais](/pt-BR/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode), elas deverão continuar sendo despachadas até que
a [função de despacho](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueuedispatch) retorne.

```c++ theme={null}
XTaskQueueTerminate(taskQueue, false, nullptr, nullptr);
bool result;
do
{
    result = XTaskQueueDispatch(taskQueue, XTaskQueuePort::Completion, INFINITE);
} while (result == true);
XTaskQueueCloseHandle(taskQueue);
```

Este exemplo encerra a fila de tarefas, mas não aguarda, usando o
parâmetro de espera de [XTaskQueueTerminate](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueueterminate).
A chamada `terminate` adiciona um retorno de chamada a cada porta para detectar quando a fila
é esvaziada. Para levar isso em conta, bem como quaisquer retornos de chamada enfileirados anteriormente,
`dispatch` é chamado continuamente até retornar `false`.

## Documentação de referência da API

* [XTaskQueue (conteúdo da API)](/pt-BR/reference/system/xtaskqueue/xtaskqueue_members)
  * Funções
    * [xtaskqueueterminate](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueueterminate)
    * [xtaskqueuedispatch](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueuedispatch)

## Consulte também

[Visão geral da biblioteca XTaskQueue](/pt-BR/build/core-features/common/async/async-libraries/async-library-xtaskqueue)

[Criar fila de tarefas (exemplo)](/pt-BR/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue)

[Despachar fila de tarefas (exemplo)](/pt-BR/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-dispatch-task-queue)

[Projetando a fila de tarefas](/pt-BR/build/core-features/common/async/async-task-queue-design)

[XTaskQueue](/pt-BR/reference/system/xtaskqueue/xtaskqueue_members)


## Related topics

- [Bibliotecas XAsync para programação de tarefas assíncronas](/pt-BR/build/core-features/common/async/async-libraries/index.md)
- [Exemplo de despacho da fila de tarefas](/pt-BR/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-dispatch-task-queue.md)
- [Design da fila de tarefas assíncronas](/pt-BR/build/core-features/common/async/async-task-queue-design.md)
- [Exemplo de criação de fila de tarefas](/pt-BR/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)
- [Como: Criar uma fila de tarefas composta](/pt-BR/build/core-features/common/async/async-task-queue-design-howto/creating-composite-task-queue.md)
