次の方法で共有


XAsync ライブラリの概要

XAsync ライブラリには、非同期タスクとそのコールバックを定義するメソッドとデータが用意されています。 メインの非同期プリミティブである XAsyncBlock がこのライブラリで定義されています。 これは、すべての非同期タスクの要件です。

このライブラリには、非同期ブロック以外にも、基本的な非同期呼び出しを開始したり、非同期タスクの状態を取得したり、タスクのキャンセルを試行したりするためのメソッドが用意されています。

XAsyncBlock

XAsyncBlock は、完了コールバックの実装、完了コールバックへのデータの提供、および実行するタスク キューの選択に使用されるメンバーを含むメインの非同期プリミティブです。

また、非同期ブロックには、実行時の動作のためにシステム内部で使用されるプライベート データも含まれます。 結果として、このブロックを複数のアクティブなタスクで共有することはできません。 このデータは、呼び出しがアクティブな間にシステムが非同期呼び出しを特定するために使用されます。

struct XAsyncBlock
{
    /// <summary>
    /// The queue to queue the call on.
    /// </summary>
    XTaskQueueHandle queue;
    
    /// <summary>
    /// Optional context pointer to pass to the callback.
    /// </summary>
    void* context;
    
    /// <summary>
    /// Optional callback that is invoked when the call completes.
    /// </summary>
    XAsyncCompletionRoutine* callback;
    
    /// <summary>
    /// Internal use only.
    /// </summary>
    unsigned char internal[sizeof(void*) * 4];
};

関連項目

非同期タスクを設定する
単純なタスクを実行する
Microsoft Game Development Kit APIを実行する
XAsync システム API の内容