次の方法で共有


XAsyncComplete

非同期プロバイダーのコールバック関数が完了し、結果を返すことができる状態を示します。

構文

void XAsyncComplete(  
         XAsyncBlock* asyncBlock,  
         HRESULT result,  
         size_t requiredBufferSize  
)  

パラメーター

asyncBlock _Inout_
型: XAsyncBlock*

XAsyncBegin に渡される XAsyncBlock へのポインター。

result _In_
型: HRESULT

コールバック関数によって実行された処理の結果。 処理がキャンセルされた場合は、E_ABORT に設定します。 より多くの処理を行う必要がある場合は、E_PENDING に設定します。 それ以外の場合は、適切な結果コードに設定します。

requiredBufferSize _In_
型: size_t

コールバック関数によって返されるデータ ペイロードの必要サイズ (バイト単位)。 コールバック関数がデータ ペイロードを返さない場合は、この値を 0 に設定します。 コールバック関数がエラーを返す場合、このパラメーターは無視されます。

戻り値

型: void

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

この関数は、非同期処理を実行またはキャンセルするためにコールバック関数が呼び出されたときに呼び出されます。 この関数により、適切な結果コードが返されます。また、該当する場合は、データ ペイロードに関する情報が返されます。 通常、コールバック関数の XAsyncOp 操作コード、非同期処理、およびデータ ペイロードの組み合わせによって、この関数の呼び出し時に result および requiredBufferSize に指定する必要がある値が決まります。

コールバック関数が XAsyncOp::DoWork 操作コードで呼び出された場合は、コールバック関数が非同期処理を実行する必要があります。 コールバック関数がすべての非同期処理を完了した場合は、result を適切なエラーコードに設定します。 より多くの処理を行う必要がある場合は、resultE_PENDING に設定します。 関数がデータ ペイロードを返す場合は、requiredBufferSize をデータ ペイロードを返すために必要なバッファーのサイズ (バイト単位) に設定します。それ以外の場合は、requiredBufferSize を 0 に設定します。

コールバック関数が XAsyncOp::Cancel 操作コードで呼び出された場合は、コールバック関数が非同期処理を取り消す必要があります。 resultE_ABORT に設定し、requiredBufferSize をゼロに設定します。

要件

ヘッダー: XAsyncProvider.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XAsyncProvider のメンバー
XAsyncBegin
非同期プログラミング モデル