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

# Procedimiento: Uso de la cola de tareas del proceso

> Procedimiento: Uso de la cola de tareas del proceso

## Ejemplo

La *cola de tareas del proceso* predeterminada usa el grupo de subprocesos tanto para la distribución del trabajo como de las finalizaciones. Todas las API de Microsoft Game Development Kit (GDK) que toman parámetros de cola de tareas aceptan `nullptr` y lo sustituyen por la cola de tareas del proceso. Se puede reemplazar. La cola de tareas del proceso también se puede establecer en `nullptr`. En este caso, las API de Microsoft Game Development Kit (GDK) que requieren un parámetro de cola de tareas generarán el error `E_NO_TASK_QUEUE`. Esto permite que las API de Microsoft Game Development Kit (GDK) funcionen con los valores predeterminados y, al mismo tiempo, permite un control estricto sobre los identificadores de las colas de tareas, si es necesario.

En el ejemplo siguiente se muestra cómo usar la cola de tareas del proceso.

```c++ theme={null}
void UsingProcessTaskQueue()  
{  
    XTaskQueueHandle queue = GetCurrentProcessTaskQueue();  
  
    auto callback = [](void*, bool)  
    {  
        printf("Work callback invoked.\r\n");  
    };  
  
    HRESULT hr = XTaskQueueSubmitCallback(  
        queue, XTaskQueuePort::Work,  
        nullptr, callback);  
  
    if (FAILED(hr))  
    {  
        printf("Failed to submit callback: %x\r\n", hr);  
        return;  
    }  
  
    // You can replace the process task queue.  
    hr = XTaskQueueCreate(  
        XTaskQueueDispatchMode::Manual,  
        XTaskQueueDispatchMode::Manual,  
        &queue);  
  
    if (FAILED(hr))  
    {  
        printf("Failed to create new task queue: %x\r\n", hr);  
        return;  
    }  
  
    XTaskQueueSetCurrentProcessTaskQueue(queue);  
  
    XTaskQueueHandle processQueue;  
    XTaskQueueGetCurrentProcessTaskQueue(&processQueue);  
    printf("Process task queue: %p. Our queue: %p\r\n",  
        processQueue, queue);  
    XTaskQueueCloseHandle(processQueue);  
  
    // You can set the process queue to nullptr to force everyone to pass a queue  
    // as a parameter.  
    XTaskQueueSetCurrentProcessTaskQueue(nullptr);  
    XTaskQueueGetCurrentProcessTaskQueue(&processQueue);  
    printf("Process task queue: %p.\r\n",  
        processQueue);  
}  
```

## Consulte también

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


## Related topics

- [Diseño de colas de tareas asincrónicas](/es/build/core-features/common/async/async-task-queue-design.md)
- [Procedimiento: Uso de eventos para controlar la distribución manual de colas](/es/build/core-features/common/async/async-task-queue-design-howto/control-manual-queue-dispatching.md)
- [Procedimiento: Uso de una cola de tareas con un bucle de mensajes de Windows](/es/build/core-features/common/async/async-task-queue-design-howto/task-queue-windows-msg-loop.md)
- [Procedimiento: Uso de un elemento de espera de cola de tareas](/es/build/core-features/common/async/async-task-queue-design-howto/using-task-queue-waiter.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)
