XPackageUnregisterPackageInstalled
前に登録したパッケージがインストールしたコールバックを登録解除します。
構文
bool XPackageUnregisterPackageInstalled(
XTaskQueueRegistrationToken token,
bool wait
)
パラメーター
token _In_
型: XTaskQueueRegistrationToken
XPackageRegisterPackageInstalled によって返されるトークン。
wait _In_
型: bool
保留中のすべてのコールバックが完了するまでブロックするかどうかを示します。
戻り値
型: bool
wait が false で登録解除が保留になっている場合は、false が返されます。 それ以外の場合は、true が返されます。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
通知の登録解除は次のように動作します。
- 登録解除により、登録済みコールバックのセットから、トークンに関連付けられているコールバックが削除されます。
- そのコールバック トークンに対してコールバックが実行されていない場合、呼び出しから true が返されます。
- コールバックが実行されていて、wait が true の場合、実行中のコールバックが完了するまで、呼び出しはブロックされます。
- コールバックが実行されていて、wait が false の場合、呼び出しはブロックされませんが、false が返されます。 トークンに対するコールバックが完了すると、トークンは自動的に登録解除されます。
このメカニズムにより、次のようなコーディング パターンが可能になります。
- 登録解除でブロックして、登録解除の呼び出しの後でコールバックが二度と呼び出されないようにすることができます。
- ブロックしないことを選択できます。 データを削除する前にコールバックを完了するには、wait を false にして、登録解除を定期的に呼び出すことができます。 最終的に true が返されたら、すべてのコールバックは完了しており、状態を削除することができます。
- 登録解除の呼び出しの間に呼び出されたかどうかをコールバックで気にする必要がない場合は、wait に false を渡すだけで、戻り値を無視してかまいません。
次のコード サンプルは、XPackageUnregisterPackageInstalled の使用方法を示しています。
void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
XPackageUnregisterPackageInstalled(token, false);
}
要件
ヘッダー: XPackage.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体
関連項目
XPackage
PC と Xbox One 用のダウンロード コンテンツ パッケージ (DLC) を作成して使用する方法