Skip to main content

XAsyncBlock

非同期呼び出しのライフタイムを表します。

Syntax

Members

queue
型: XTaskQueueHandle
省略可能。非同期呼び出し、および必要に応じて callback に指定された完了コールバック用のタスク キューへのハンドル。null に設定すると、非同期呼び出しはプロセスのタスク キューを使用しようとします。プロセスのタスク キューも null に設定されている場合、非同期呼び出しは失敗し、E_NO_TASK_QUEUE を返します。 context
型: void*
省略可能。完了コールバックに渡される情報へのポインター。 callback
型: XAsyncCompletionRoutine*
呼び出しが完了したときに呼び出される、省略可能なコールバック。 internal
型: unsigned char[sizeof(void*) * 4]
内部使用のために予約されています。

Remarks

XAsyncBlock 構造体は、非同期呼び出しのライフタイムを表します。XAsyncBlock を使用して、まず非同期呼び出しを呼び出し、その呼び出しに対する省略可能な完了コールバックを提供します。その後、XAsyncBlock をその特定の呼び出しのハンドルとして使用できます。非同期呼び出しを呼び出すと、実行のためにタスク キューに送信されます。タスク キューを使用すると、どのスレッドが非同期呼び出しを実行し、指定されている場合は、どのスレッドが完了コールバックを呼び出すかを決定できます。非同期呼び出しを呼び出すためにタスク キューを作成する必要はありません。queue にタスク キューが指定されていない場合、既定でプロセスのタスク キューが使用されます。通常、プロセスのタスク キューは非同期呼び出しをシステムのスレッド プールにディスパッチし、非同期呼び出しを開始したスレッドがアラート可能な状態のときに、そのスレッドで完了コールバックが呼び出されます。タスク キューのディスパッチ モードの詳細については、Async Task Queue Design を参照してください。
非同期呼び出しを呼び出した後は、その非同期呼び出しの XAsyncBlock 内のパラメーターを変更しないでください。

完了コールバック

非同期呼び出しに 完了コールバック を提供するために、callback にコールバック関数へのポインターを必要に応じて指定できます。完了コールバックとは、非同期呼び出しの完了後に実行されるコールバック関数です。context に完了コールバック用の情報を表すポインターを指定することで、コンテキスト固有のデータを完了コールバックに提供できます。 callback に完了コールバックを指定しない場合は、XAsyncGetStatus 関数を使用して非同期呼び出しが完了したかどうかを定期的に確認し、必要に応じて XAsyncGetResult および XAsyncGetResultSize を使用して、完了したタスクから結果を取得できます。 完了コールバックの詳細については、XAsyncCompletionRoutine を参照してください。

XAsyncBlock の実装

XAsyncProvider を使用して、XAsyncBlock で独自の非同期機能を実装し、XTaskQueue 関数を使用してその機能を呼び出すことができます。また、XAsyncRun を呼び出して非同期呼び出しを実行することもできます。これは、XAsyncProvider を内部的に使用して、別のヘルパー関数である XAsyncWork で指定されたコールバック関数を実行および追跡するヘルパー関数です。XAsyncProvider および XAsyncBlock を使用して独自の非同期機能を実装する方法の詳細については、Asynchronous Programming Model を参照してください。 XAsyncBlock は、非同期呼び出しのライフタイムの間、メモリに残る必要があります。ただし、XAsyncBlock が動的に割り当てられている場合は、非同期呼び出しの完了コールバック内で安全に削除できます。

Requirements

ヘッダー: XAsync.h サポートされているプラットフォーム: Windows、XBOX One ファミリー本体および XBOX Series 本体

Conceptual documentation

See also

XAsync Members
XAsyncProvider Members
Asynchronous Programming Model
最終更新日 2026年8月24日