PartyThreadId
内部処理タスクの高水準の分類。
構文
enum class PartyThreadId
{
Audio = 0,
Networking = 1,
}
定数
定数 | 説明 |
---|---|
Audio | オーディオに関連する内部処理タスクを表します。 |
Networking | ネットワーキングに関連する内部処理タスクを表します。 |
解説
PartyManager::GetWorkMode()と PartyManager::SetWorkMode()と共に使用すると、タイトルは関連付けられた内部処理タスクの作業モードを (それぞれ) 読み取りおよび書き込みできます。 タイトルと内部処理タスクの相互作用は、現在構成されている作業モードによって大きく異なります。
PartyThreadId::Audio 作業モードが PartyWorkMode::Automatic に設定されている場合、パーティー ライブラリは、リアルタイム要件で頻繁に実行される内部管理された優先度の高いスレッドを使用してタスクを実行します。 Windows および Xbox 本体では、これらのオーディオ スレッドは 40 ミリ秒ごとに XAudio2 と直接対話します。 XAudio2 のパーティー ライブラリ インスタンスは、PartyManager::SetThreadAffinityMask() を介して PartyThreadId::Audio に構成されたプロセッサ アフィニティに対応するプロセッサ アフィニティで初期化されます。 オーディオ スレッド タイプにプロセッサ アフィニティが指定されていない場合、XAudio2 のインスタンスは、XAUDIO2_DEFAULT_PROCESSOR のプロセッサ アフィニティで初期化されます。
PartyThreadId::Networking 作業モードが PartyWorkMode::Automatic に設定されている場合、ネットワーク スレッドは内部で作成および管理されます。 これらのスレッドは、ネットワーク I/O とポーリング メカニズムの両方から駆動され、16 ミリ秒から 100 ミリ秒ごと、またはネットワーク トラフィックが受信されるたびにスリープ解除されます。 これらの PartyThreadId::Networking スレッドのプロセッサ アフィニティは、必要に応じて PartyManager::SetThreadAffinityMask() を介して構成されます。
PartyThreadId の種類の作業モードが PartyWorkMode::Manual に設定されている場合、パーティー ライブラリは内部ワーカー スレッドを作成せず、代わりに PartyManager::DoWork() への定期的な呼び出しを使用して必要な処理を実行するのはタイトルの責任です。 これらのタイトル呼び出しの周期性は、作業モードが PartyWorkMode::Automatic の場合に内部スレッドによって使用される最小ポーリング頻度と一致するか、超える必要があります。
要件
ヘッダー: Party.h
関連項目
パーティーのメンバー
PartyManager::GetThreadAffinityMask
PartyManager::SetThreadAffinityMask
PartyManager::SetWorkMode
PartyManager::GetWorkMode
PartyManager::DoWork