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

将给定任务队列设置为进程范围的任务队列。

## Syntax

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

### Parameters

*queue*   \_In\_\
类型：XTaskQueueHandle

要设置为进程默认任务队列的队列。

### Return value

类型：void

## Remarks

<Note>此函数在时间敏感线程上调用不安全。有关详细信息，请参阅[时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。</Note>

队列可以设置为 nullptr，在这种情况下，[XTaskQueueGetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue) 也将返回 nullptr。所提供的队列将复制其句柄，并且任何现有进程任务队列的句柄都将关闭。

以下示例将替换默认进程任务队列。此任务队列使用线程池进行工作调度和完成调度。接受任务队列参数的 Microsoft Game Development Kit (GDK) API 都接受 **nullptr** 并替换为进程任务队列。进程任务队列也可以设置为 **nullptr**，在这种情况下，如果提供 null，则需要任务队列参数的 Microsoft Game Development Kit (GDK) API 将出错，返回 E\_NO\_TASK\_QUEUE。这使得 Microsoft Game Development Kit (GDK) API 可以使用默认值运行，同时在需要时仍然允许严密控制任务队列句柄。

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

## Requirements

**头文件：** XTaskQueue.h

**库：** xgameruntime.lib

**受支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## Conceptual documentation

* [XTaskQueue 库概述](/build/core-features/common/async/async-libraries/async-library-xtaskqueue)
* [异步编程设计目标和改进](/build/core-features/common/async/async-whitepaper)
* [时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## See also

[XTaskQueue 成员](/reference/system/xtaskqueue/xtaskqueue_members)\
[异步编程模型](/build/core-features/common/async/async-programming-model)\
[异步任务队列设计](/build/core-features/common/async/async-task-queue-design)


## Related topics

- [XTaskQueueGetCurrentProcessTaskQueue](/zh-CN/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue.md)
- [XTaskQueue](/zh-CN/reference/system/xtaskqueue/xtaskqueue_members.md)
- [如何使用 XBOX 服务 API (XSAPI)](/zh-CN/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis.md)
- [XTaskQueue 库概述](/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue.md)
- [XTaskQueuePort](/zh-CN/reference/system/xtaskqueue/enums/xtaskqueueport.md)
