XAsyncBegin
XAsyncBlock を初期化し、非同期プロバイダーによる非同期作業を開始します。Syntax
Parameters
asyncBlock _Inout_型: XAsyncBlock* 非同期呼び出しのデータを保持する XAsyncBlock へのポインター。 context _In_opt_
型: void* 省略可能。XAsyncProvider コールバック関数に渡される XAsyncProviderData オブジェクトに格納されるコンテキスト ポインター。 identity _In_opt_
型: void* 省略可能。非同期呼び出しを識別するために使用できる任意のトークンへのポインター。 identityName _In_opt_
型: char* 省略可能。非同期呼び出しを提供する関数の名前を表す文字列。このパラメーターの値は、通常
__FUNCTION__ コンパイラ マクロに設定されます。
provider _In_型: XAsyncProvider* 非同期呼び出しに対して呼び出される XAsyncProvider コールバック関数へのポインター。
Return value
型: HRESULT 成功した場合はS_OK を返します。それ以外の場合はエラー コードを返します。エラー コードの一覧については、Error Codes を参照してください。
Remarks
XAsyncBegin は、非同期プロバイダーが非同期作業を開始する必要があることを示すために呼び出されます。XAsyncBegin が呼び出された後、XAsyncGetResult などの他の XAsyncProvider 関数は、意味のあるデータを提供します。
XAsyncBegin が呼び出されると、provider に指定されたコールバック関数が XAsyncProvider の op パラメーターに XAsyncOp::Begin を指定して呼び出されます。コールバック関数がこの操作コードを実装している場合は、XAsyncSchedule を呼び出すか、外部の手段を通じて非同期作業を開始する必要があります。XAsyncBegin が戻った後、コールバック関数がシステム定義のスレッド上で非同期作業を開始したと見なされます。
provider に指定されたコールバック関数は、
XAsyncBegin の呼び出しチェーン内で同期的に処理されます。コールバック関数が実行する非同期作業は、スレッドをブロックしてはなりません。XAsyncOp::Begin と XAsyncOp::GetResult の呼び出しが一致しないケースを識別および管理できます。通常、identity の値は XAsyncBegin を呼び出した関数の関数ポインターに設定され、identityName の値は __FUNCTION__ コンパイラ マクロに設定されます。
Requirements
ヘッダー: XAsyncProvider.h ライブラリ: xgameruntime.lib サポートされているプラットフォーム: Windows、XBOX One ファミリー本体および XBOX Series 本体Conceptual documentation
See also
XAsyncProvider MembersXAsyncProviderData
XAsyncProvider
XAsyncGetResult
Asynchronous Programming Model
