時間依存のスレッド
ゲームでは、システムから可能な限り高いパフォーマンスを得ることを目的とします。 この状態を実現するために、時間依存のゲームのスレッドがあります。これらのスレッドは、予期しない長時間の実行操作を要求しません。 時間依存のスレッドの典型的な例として、ゲームのレンダリングに使用するものがあります。
ゲーム ランタイム サービス (GRTS) を使用すると、時間依存のスレッドで呼び出すには安全ではない API の特定が若干容易になります。
注意
GRTS API は "X" で始まるので、特定できます ( XGameSaveInitializeProvider や XGameGetXboxTitleId など)。
この識別が機能するためには、時間依存のスレッド上でゲームから XThreadSetTimeSensitive を呼び出します。 GRTS API からクエリできるスレッド ローカル ストレージに、この API によって 1 ビットが格納されます。
時間依存のスレッドで呼び出しても安全と見なされる GRTS API は、同じ入力が与えられたときに一貫した実行時パフォーマンスを示します。 時間依存のスレッドで呼び出す API として GRTS API が安全ではない場合、GRTS API によって XThreadAssertNotTimeSensitive が内部的に呼び出されます。 時間依存としてマークしたスレッド上で安全ではない関数を呼び出すと、以下の処理が実行されます。
- デバッガーをアタッチしている場合はアサートがトリガーされ、デベロッパーに違反が通知されます。 ブレークポイントをグローバルに無効にする方法についても、デベロッパーに対して説明があります。
- XbWatson (NDA トピック)認可が必須ですで表示できる Windows イベント トレーシング (ETW) イベントが生成されます。
時間依存のスレッドの安全でない関数
次の GRTS API 関数は、時間依存のスレッドで安全に呼び出すことができません。 その他のすべての GRTS API 関数は時間依存のスレッドに対して安全で時間依存のスレッドで呼び出すことができます。