時間依存のスレッド

ゲームでは、システムから可能な限り高いパフォーマンスを得ることを目的とします。 この状態を実現するために、時間依存のゲームのスレッドがあります。これらのスレッドは、予期しない長時間の実行操作を要求しません。 時間依存のスレッドの典型的な例として、ゲームのレンダリングに使用するものがあります。

ゲーム ランタイム サービス (GRTS) を使用すると、時間依存のスレッドで呼び出すには安全ではない API の特定が若干容易になります。

注意

GRTS API は "X" で始まるので、特定できます ( XGameSaveInitializeProviderXGameGetXboxTitleId など)。

この識別が機能するためには、時間依存のスレッド上でゲームから XThreadSetTimeSensitive を呼び出します。 GRTS API からクエリできるスレッド ローカル ストレージに、この API によって 1 ビットが格納されます。

時間依存のスレッドで呼び出しても安全と見なされる GRTS API は、同じ入力が与えられたときに一貫した実行時パフォーマンスを示します。 時間依存のスレッドで呼び出す API として GRTS API が安全ではない場合、GRTS API によって XThreadAssertNotTimeSensitive が内部的に呼び出されます。 時間依存としてマークしたスレッド上で安全ではない関数を呼び出すと、以下の処理が実行されます。

  • デバッガーをアタッチしている場合はアサートがトリガーされ、デベロッパーに違反が通知されます。 ブレークポイントをグローバルに無効にする方法についても、デベロッパーに対して説明があります。
  • XbWatson (NDA トピック)認可が必須ですで表示できる Windows イベント トレーシング (ETW) イベントが生成されます。

時間依存のスレッドの安全でない関数

次の GRTS API 関数は、時間依存のスレッドで安全に呼び出すことができません。 その他のすべての GRTS API 関数は時間依存のスレッドに対して安全で時間依存のスレッドで呼び出すことができます。

ネットワーキング API

ヘッダー 関数
XNetworking XNetworkingQueryPreferredLocalUdpMultiplayerPort
XNetworking XNetworkingUnregisterConnectivityHintChanged
XNetworking XNetworkingUnregisterPreferredLocalUdpMultiplayerPortChanged
XNetworking XNetworkingVerifyServerCertificate

システム API

ヘッダー 関数
XAccessibility XClosedCaptionGetProperties
XAccessibility XClosedCaptionSetEnabled
XAccessibility XHighContrastGetMode
XAccessibility XSpeechToTextSendString
XAccessibility XSpeechToTextSetPositionHint
XAppCapture XAppBroadcastGetStatus
XAppCapture XAppBroadcastIsAppBroadcasting
XAppCapture XAppBroadcastRegisterIsAppBroadcastingChanged
XAppCapture XAppBroadcastShowUI
XAppCapture XAppBroadcastUnregisterIsAppBroadcastingChanged
XAppCapture XAppCaptureCloseScreenshotStream
XAppCapture XAppCaptureDisableRecord
XAppCapture XAppCaptureEnableRecord
XAppCapture XAppCaptureMetadataAddDoubleEvent
XAppCapture XAppCaptureMetadataAddInt32Event
XAppCapture XAppCaptureMetadataAddStringEvent
XAppCapture XAppCaptureMetadataRemainingStorageBytesAvailable
XAppCapture XAppCaptureMetadataStartDoubleState
XAppCapture XAppCaptureMetadataStartInt32State
XAppCapture XAppCaptureMetadataStartStringState
XAppCapture XAppCaptureMetadataStopAllStates
XAppCapture XAppCaptureMetadataStopState
XAppCapture XAppCaptureOpenScreenshotStream
XAppCapture XAppCaptureReadScreenshotStream
XAppCapture XAppCaptureRecordDiagnosticClip
XAppCapture XAppCaptureRegisterMetadataPurged
XAppCapture XAppCaptureTakeDiagnosticScreenshot
XAppCapture XAppCaptureTakeScreenshot
XAppCapture XAppCaptureUnRegisterMetadataPurged
XAsyncProvider XAsyncComplete
XDisplay XDisplayAcquireTimeoutDeferral
XDisplay XDisplayCloseTimeoutDeferralHandle
XDisplay XDisplayTryEnableHdrMode
XError XErrorSetCallback
XError XErrorSetOptions
XGame XGameGetXboxTitleId
XGame XLaunchNewGame
XGameEvent XGameEventWrite
XGameInvite XGameInviteRegisterForEvent
XGameInvite XGameInviteUnregisterForEvent
XGameSave XGameSaveCloseContainer
XGameSave XGameSaveCloseProvider
XGameSave XGameSaveCloseUpdate
XGameSave XGameSaveCreateContainer
XGameSave XGameSaveCreateUpdate
XGameSave XGameSaveDeleteContainer
XGameSave XGameSaveEnumerateBlobInfo
XGameSave XGameSaveEnumerateBlobInfoByName
XGameSave XGameSaveEnumerateContainerInfo
XGameSave XGameSaveEnumerateContainerInfoByName
XGameSave XGameSaveGetContainerInfo
XGameSave XGameSaveGetRemainingQuota
XGameSave XGameSaveInitializeProvider
XGameSave XGameSaveReadBlobData
XGameSave XGameSaveSubmitBlobDelete
XGameSave XGameSaveSubmitBlobWrite
XGameSave XGameSaveSubmitUpdate
XGameStreaming XGameStreamingGetStreamAddedLatency
XGameStreaming XGameStreamingInitialize
XGameStreaming XGameStreamingRegisterClientPropertiesChanged
XGameStreaming XGameStreamingRegisterConnectionStateChanged
XGameStreaming XGameStreamingUninitialize
XGameStreaming XGameStreamingUnregisterClientPropertiesChanged
XGameStreaming XGameStreamingUnregisterConnectionStateChanged
XGameUI XGameUiSetNotificationPositionHint
XLauncher XLaunchUri
XPackage XPackageChangeChunkInstallOrder
XPackage XPackageCloseMountHandle
XPackage XPackageCreateInstallationMonitor
XPackage XPackageEnumerateChunkAvailability
XPackage XPackageEnumeratePackages
XPackage XPackageEstimateDownloadSize
XPackage XPackageFindChunkAvailability
XPackage XPackageGetMountPath
XPackage XPackageGetMountPathSize
XPackage XPackageGetUserLocale
XPackage XPackageInstallChunks
XPackage XPackageMount
XPackage XPackageUninstallChunks
XPackage XPackageUnregisterInstallationProgressChanged
XPackage XPackageUnregisterPackageInstalled
XPackage XPackageUpdateInstallationMonitor
XPersistentLocalStorage XPersistentLocalStorageGetPath
XPersistentLocalStorage XPersistentLocalStorageGetPathSize
XPersistentLocalStorage XPersistentLocalStorageMountForPackage
XSpeechSynthesizer XSpeechSynthesizerCloseHandle
XSpeechSynthesizer XSpeechSynthesizerCloseStreamHandle
XSpeechSynthesizer XSpeechSynthesizerCreate
XSpeechSynthesizer XSpeechSynthesizerCreateStreamFromText
XSpeechSynthesizer XSpeechSynthesizerEnumerateInstalledVoices
XSpeechSynthesizer XSpeechSynthesizerGetStreamData
XSpeechSynthesizer XSpeechSynthesizerGetStreamDataSize
XSpeechSynthesizer XSpeechSynthesizerSetCustomVoice
XSpeechSynthesizer XSpeechSynthesizerSetDefaultVoice
XStore XStoreCloseContextHandle
XStore XStoreCloseLicenseHandle
XStore XStoreCloseProductsQueryHandle
XStore XStoreCreateContext
XStore XStoreEnumerateProductsQuery
XStore XStoreUnregisterGameLicenseChanged
XStore XStoreUnregisterPackageLicenseLost
XSystem XSystemAllowFullDownloadBandwidth
XSystem XSystemGetAnalyticsInfo
XSystem XSystemGetConsoleId
XSystem XSystemGetXboxLiveSandboxId
XTaskQueue XTaskQueueCreate
XTaskQueue XTaskQueueCreateComposite
XTaskQueue XTaskQueueGetCurrentProcessTaskQueue
XTaskQueue XTaskQueueGetPort
XTaskQueue XTaskQueueRegisterMonitor
XTaskQueue XTaskQueueRegisterWaiter
XTaskQueue XTaskQueueSetCurrentProcessTaskQueue
XTaskQueue XTaskQueueTerminate
XTaskQueue XTaskQueueUnregisterMonitor
XTaskQueue XTaskQueueUnregisterWaiter
XUser XUserCloseHandle
XUser XUserCloseSignOutDeferralHandle
XUser XUserFindForDevice
XUser XUserFindUserById
XUser XUserFindUserByLocalId
XUser XUserGetDefaultAudioEndpointUtf16
XUser XUserRegisterForChangeEvent
XUser XUserRegisterForDefaultAudioEndpointUtf16Changed
XUser XUserRegisterForDeviceAssociationChanged
XUser XUserUnregisterForChangeEvent
XUser XUserUnregisterforDefaultAudioEndpointUtf16Changed
XUser XUserUnregisterforDeviceAssociationChanged

関連項目

XThread API リファレンス