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

指定されたタスク キューをプロセス全体のタスク キューとして設定します。

## 構文

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

### パラメーター

*queue*   \_In\_\
Type: XTaskQueueHandle

プロセスの既定のタスク キューとして設定するキューです。

### 戻り値

Type: void

## 解説

<Note>この関数は、時間依存スレッドで呼び出しても安全ではありません。詳細については、[Time-sensitive threads](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** に設定することも可能で、その場合、タスク キュー パラメーターを必要とする Microsoft Game Development Kit (GDK) API は、null が指定されると 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;
    }
}
```

## 要件

**ヘッダー:** XTaskQueue.h

**ライブラリ:** xgameruntime.lib

**サポートされているプラットフォーム:** Windows、XBOX One 本体、XBOX Series 本体

## 概念ドキュメント

* [XTaskQueue ライブラリの概要](/build/core-features/common/async/async-libraries/async-library-xtaskqueue)
* [非同期プログラミングの設計目標と改善点](/build/core-features/common/async/async-whitepaper)
* [Time-sensitive threads](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 関連項目

[XTaskQueue members](/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](/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue.md)
- [XTaskQueue](/ja-jp/reference/system/xtaskqueue/xtaskqueue_members.md)
- [XBOX Services API (XSAPI) の使用方法](/ja-jp/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis.md)
- [XTaskQueue ライブラリの概要](/ja-jp/build/core-features/common/async/async-libraries/async-library-xtaskqueue.md)
- [XTaskQueuePort](/ja-jp/reference/system/xtaskqueue/enums/xtaskqueueport.md)
