次の方法で共有


非同期タスクの設定の例

このトピックでは、非同期タスクを設定する方法の例を紹介します。 実行する非同期タスクのための XAsyncBlock を設定します。 これらの非同期ブロックは、複数のアクティブな非同期タスク間で共有することはできません。 ただし、元のタスクが終了した後、それらを別のタスクに再利用できます。 単純なパターンとしては、各呼び出しに対してブロックを動的に割り当て、完了コールバックで呼び出しが終了したら解放します。

XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = contextData;
async->callback = 
    [](XAsyncBlock* async)
    {
        // The optional completion callback.
        delete async;
    }

完了コールバックのパラメーターは、以前に作成された非同期ブロックです。 こうすることで、必要に応じてコンテキストにアクセスして、入力と出力の両方で正しい型にキャストすることができます。

関連項目

XAsync ライブラリの概要

単純なタスクを実行する (例)

Microsoft Game Development Kit (GDK) API タスクを実行する (例)

XAsync