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

# XTaskQueueSetCurrentProcessTaskQueue

> XTaskQueueSetCurrentProcessTaskQueue

# XTaskQueueSetCurrentProcessTaskQueue

Define a fila de tarefas especificada como a fila de tarefas de todo o processo.

## Sintaxe

```cpp theme={null}
void XTaskQueueSetCurrentProcessTaskQueue(  
         XTaskQueueHandle queue  
)  
```

### Parâmetros

*queue*   \_In\_\
Tipo: XTaskQueueHandle

A fila a ser configurada como a fila de tarefas padrão do processo.

### Valor retornado

Tipo: void

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

A fila pode ser definida como nullptr; nesse caso, [XTaskQueueGetCurrentProcessTaskQueue](/pt-BR/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue) também retornará nullptr. O identificador da fila fornecida será duplicado e o identificador de qualquer fila de tarefas do processo existente será fechado.

O exemplo a seguir substitui a fila de tarefas padrão do processo. Essa fila de tarefas usa o pool de threads tanto para a expedição de trabalho quanto para a de conclusão. As APIs do Microsoft Game Development Kit (GDK) que recebem parâmetros de fila de tarefas aceitam **nullptr** e o substituem pela fila de tarefas do processo. A fila de tarefas do processo também pode ser definida como **nullptr**; nesse caso, as APIs do Microsoft Game Development Kit (GDK) que exigem um parâmetro de fila de tarefas retornarão o erro E\_NO\_TASK\_QUEUE se um valor nulo for fornecido. Isso permite que as APIs do Microsoft Game Development Kit (GDK) funcionem com padrões e, ao mesmo tempo, permite um controle rigoroso sobre os identificadores de fila de tarefas, se necessário.

```cpp theme={null}
void UsingProcessTaskQueue()
{
    XTaskQueueHandle queue = nullptr;
    XTaskQueueGetCurrentProcessTaskQueue(&queue);

    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;
    }
}
```

## Requisitos

**Cabeçalho:** XTaskQueue.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Visão geral da biblioteca XTaskQueue](/pt-BR/build/core-features/common/async/async-libraries/async-library-xtaskqueue)
* [Metas de design e melhorias da programação assíncrona](/pt-BR/build/core-features/common/async/async-whitepaper)
* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[Membros de XTaskQueue](/pt-BR/reference/system/xtaskqueue/xtaskqueue_members)\
[Modelo de programação assíncrona](/pt-BR/build/core-features/common/async/async-programming-model)\
[Design da fila de tarefas assíncrona](/pt-BR/build/core-features/common/async/async-task-queue-design)


## Related topics

- [XTaskQueueSetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuesetcurrentprocesstaskqueue.md)
- [XTaskQueueGetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue.md)
