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

# Ejemplo de limpieza de una cola de tareas

> Ejemplo de limpieza de una cola de tareas

En este tema se proporciona un ejemplo de cómo limpiar una cola de tareas cuando ya no se necesita para evitar la pérdida de recursos. Sin embargo, una cola de tareas no se puede liberar inmediatamente. Primero debe terminarse, vaciarse para
garantizar que todo lo puesto en cola se haya ejecutado y, a continuación, liberarse.

La [llamada de terminación](/reference/system/xtaskqueue/functions/xtaskqueueterminate) se puede configurar para esperar o devolver
inmediatamente. Si una devolución de llamada no está esperando, opcionalmente se puede especificar
que se le notifique cuando la terminación finalice por completo. Si hay
[puertos manuales](/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode), estos deben seguir distribuyéndose hasta que
la [función de distribución](/reference/system/xtaskqueue/functions/xtaskqueuedispatch) devuelva un resultado.

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

Este ejemplo termina la cola de tareas, pero no espera, mediante el
parámetro de espera de [XTaskQueueTerminate](/reference/system/xtaskqueue/functions/xtaskqueueterminate).
La llamada `terminate` agrega una devolución de llamada a cada puerto para detectar cuándo la cola
se vacía. Para tener en cuenta esto y cualquier devolución de llamada puesta en cola anteriormente,
se llama continuamente a `dispatch` hasta que devuelve `false`.

## Documentación de referencia de la API

* [XTaskQueue (contenido de la API)](/reference/system/xtaskqueue/xtaskqueue_members)
  * Funciones
    * [xtaskqueueterminate](/reference/system/xtaskqueue/functions/xtaskqueueterminate)
    * [xtaskqueuedispatch](/reference/system/xtaskqueue/functions/xtaskqueuedispatch)

## Consulte también

[Información general de la biblioteca XTaskQueue](/build/core-features/common/async/async-libraries/async-library-xtaskqueue)

[Creación de una cola de tareas (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue)

[Distribución de una cola de tareas (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-dispatch-task-queue)

[Diseño de la cola de tareas](/build/core-features/common/async/async-task-queue-design)

[XTaskQueue](/reference/system/xtaskqueue/xtaskqueue_members)


## Related topics

- [Bibliotecas XAsync para la programación de tareas asincrónicas](/es/build/core-features/common/async/async-libraries/index.md)
- [Ejemplo de creación de una cola de tareas](/es/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)
- [Ejemplo de distribución de una cola de tareas](/es/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-dispatch-task-queue.md)
- [Diseño de colas de tareas asincrónicas](/es/build/core-features/common/async/async-task-queue-design.md)
- [Procedimiento: Creación de una cola de tareas compuesta](/es/build/core-features/common/async/async-task-queue-design-howto/creating-composite-task-queue.md)
