次の方法で共有


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 が返されます。 トークンに対するコールバックが完了すると、トークンは自動的に登録解除されます。

このメカニズムにより、次のようなコーディング パターンが可能になります。

  1. 登録解除でブロックして、登録解除の呼び出しの後でコールバックが二度と呼び出されないようにすることができます。
  2. ブロックしないことを選択できます。 データを削除する前にコールバックを完了するには、wait を false にして、登録解除を定期的に呼び出すことができます。 最終的に true が返されたら、すべてのコールバックは完了しており、状態を削除することができます。
  3. 登録解除の呼び出しの間に呼び出されたかどうかをコールバックで気にする必要がない場合は、wait に false を渡すだけで、戻り値を無視してかまいません。

次のコード サンプルは、XPackageUnregisterPackageInstalled の使用方法を示しています。

void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
    XPackageUnregisterPackageInstalled(token, false);
}  

要件

ヘッダー: XPackage.h

ライブラリ: xgameruntime.lib

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

関連項目

XPackage
PC と Xbox One 用のダウンロード コンテンツ パッケージ (DLC) を作成して使用する方法