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

# XTaskQueue

> XTaskQueue

# XTaskQueue

XTaskQueue APIs

## Functions

| Function                                                                                                            | Description                                                                                         |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [XTaskQueueCallback](/reference/system/xtaskqueue/functions/xtaskqueuecallback)                                     | A callback that is invoked by the task queue.                                                       |
| [XTaskQueueCloseHandle](/reference/system/xtaskqueue/functions/xtaskqueueclosehandle)                               | Closes the task queue.                                                                              |
| [XTaskQueueCreate](/reference/system/xtaskqueue/functions/xtaskqueuecreate)                                         | Creates a task queue, which can be used to queue and dispatch calls.                                |
| [XTaskQueueCreateComposite](/reference/system/xtaskqueue/functions/xtaskqueuecreatecomposite)                       | Creates a task queue composed of ports of other task queues.                                        |
| [XTaskQueueDispatch](/reference/system/xtaskqueue/functions/xtaskqueuedispatch)                                     | Processes an item in the task queue for the given port.                                             |
| [XTaskQueueDuplicateHandle](/reference/system/xtaskqueue/functions/xtaskqueueduplicatehandle)                       | Duplicates a XTaskQueueHandle object.                                                               |
| [XTaskQueueGetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue) | Obtains a handle to the process task queue, or nullptr if there is no process task queue.           |
| [XTaskQueueGetPort](/reference/system/xtaskqueue/functions/xtaskqueuegetport)                                       | Returns the task queue port handle for the given port.                                              |
| [XTaskQueueMonitorCallback](/reference/system/xtaskqueue/functions/xtaskqueuemonitorcallback)                       | A callback that is invoked by the task queue whenever a task is submitted for execution.            |
| [XTaskQueueRegisterMonitor](/reference/system/xtaskqueue/functions/xtaskqueueregistermonitor)                       | Registers a callback that will be invoked whenever a callback is submitted to this queue.           |
| [XTaskQueueRegisterWaiter](/reference/system/xtaskqueue/functions/xtaskqueueregisterwaiter)                         | Registers a wait handle with a task queue.                                                          |
| [XTaskQueueSetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuesetcurrentprocesstaskqueue) | Sets the given task queue as the process wide task queue.                                           |
| [XTaskQueueSubmitCallback](/reference/system/xtaskqueue/functions/xtaskqueuesubmitcallback)                         | Submits a callback to the queue for the given port.                                                 |
| [XTaskQueueSubmitDelayedCallback](/reference/system/xtaskqueue/functions/xtaskqueuesubmitdelayedcallback)           | Submits a callback to the queue for the given port.                                                 |
| [XTaskQueueTerminate](/reference/system/xtaskqueue/functions/xtaskqueueterminate)                                   | Terminates a task queue by canceling all pending items and preventning new items from being queued. |
| [XTaskQueueTerminatedCallback](/reference/system/xtaskqueue/functions/xtaskqueueterminatedcallback)                 | A callback that is invoked when a task queue is terminated.                                         |
| [XTaskQueueUnregisterMonitor](/reference/system/xtaskqueue/functions/xtaskqueueunregistermonitor)                   | Unregisters a previously registered monitor callback.                                               |
| [XTaskQueueUnregisterWaiter](/reference/system/xtaskqueue/functions/xtaskqueueunregisterwaiter)                     | Unregisters a previously registered task queue waiter.                                              |

## Structures

| Structure                                                                                       | Description                                                                 |
| ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [XTaskQueueRegistrationToken](/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken) | A token returned when registering a callback, to identify the registration. |

## Enumerations

| Enumeration                                                                         | Description                                                             |
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [XTaskQueueDispatchMode](/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode) | Describes how task queue callbacks are processed.                       |
| [XTaskQueuePort](/reference/system/xtaskqueue/enums/xtaskqueueport)                 | Declares which port of a task queue to dispatch or submit callbacks to. |

## Conceptual documentation

* [XTaskQueue library overview](/build/core-features/common/async/async-libraries/async-library-xtaskqueue)

## See also

[System API reference](/reference/system/gc-reference-system-toc)\
[Asynchronous Programming Design Goals and Improvements](/build/core-features/common/async/async-whitepaper)\
[Asynchronous Programming Model](/build/core-features/common/async/async-programming-model)\
[Async Task Queue design](/build/core-features/common/async/async-task-queue-design)


## Related topics

- [XTaskQueue library overview](/build/core-features/common/async/async-libraries/async-library-xtaskqueue.md)
- [XTaskQueuePort](/reference/system/xtaskqueue/enums/xtaskqueueport.md)
- [XTaskQueueDispatch](/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md)
- [XTaskQueueTerminate](/reference/system/xtaskqueue/functions/xtaskqueueterminate.md)
- [XTaskQueueGetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue.md)
