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

# XTaskQueueUnregisterMonitor

> XTaskQueueUnregisterMonitor

# XTaskQueueUnregisterMonitor

Unregisters a previously registered monitor callback.

## Syntax

```cpp theme={null}
void XTaskQueueUnregisterMonitor(  
         XTaskQueueHandle queue,  
         XTaskQueueRegistrationToken token  
)  
```

### Parameters

*queue*   \_In\_\
Type: XTaskQueueHandle

The queue to remove the submit callback from.

*token*   \_In\_\
Type: [XTaskQueueRegistrationToken](/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken)

The registration token returned from [XTaskQueueRegisterMonitor](/reference/system/xtaskqueue/functions/xtaskqueueregistermonitor).

### Return value

Type: void

## Remarks

<Note>This function isn't safe to call on a time-sensitive thread. For more information, see [Time-sensitive threads](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

If [XTaskQueueRegisterMonitor](/reference/system/xtaskqueue/functions/xtaskqueueregistermonitor) was previously invoked to register an [XTaskQueueMonitorCallback](/reference/system/xtaskqueue/functions/xtaskqueuemonitorcallback) callback for a task queue, use `XTaskQueueUnregisterMonitor` to unregister the callback. Once unregistered, the callback is no longer invoked when tasks are submitted to the task queue for execution. Unregistering the callback also releases its reference to the task queue handle.

<Note>If you call `XTaskQueueRegisterMonitor` to register an `XTaskQueueMonitorCallback` callback with a task queue, you must use `XTaskQueueUnregisterMonitor` to unregister the callback before closing the task queue handle with [XTaskQueueCloseHandle](/reference/system/xtaskqueue/functions/xtaskqueueclosehandle); otherwise, a memory leak can occur. A task queue handle is a shareable resource, and isn't actually destroyed until all references to that handle are released. For more information, see [Async task queue design](/build/core-features/common/async/async-task-queue-design).</Note>

## Requirements

**Header:** XTaskQueue.h

**Supported platforms:** Windows, XBOX One family consoles and XBOX Series consoles

## Conceptual documentation

* [Time-sensitive threads](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## See also

[XTaskQueueRegisterMonitor](/reference/system/xtaskqueue/functions/xtaskqueueregistermonitor)\
[XTaskQueueMonitorCallback](/reference/system/xtaskqueue/functions/xtaskqueuemonitorcallback)\
[XTaskQueue members](/reference/system/xtaskqueue/xtaskqueue_members)\
[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

- [XTaskQueueRegisterMonitor](/reference/system/xtaskqueue/functions/xtaskqueueregistermonitor.md)
- [XTaskQueue](/reference/system/xtaskqueue/xtaskqueue_members.md)
- [XTaskQueueRegistrationToken](/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken.md)
- [Making async calls in the PlayFab Unified SDK](/services/playfab/sdks/unified-sdk/async-model.md)
- [Making Async Calls](/services/playfab/sdks/c/async.md)
