PartyThreadId
内部处理任务的高级分类。
语法
enum class PartyThreadId
{
Audio = 0,
Networking = 1,
}
常量
常量 | 说明 |
---|---|
音频 | 代表与音频相关的内部处理任务。 |
网络 | 代表与网络相关的内部处理任务。 |
备注
与 PartyManager::GetWorkMode() 和 PartyManager::SetWorkMode() 一起使用时,允许游戏分别读取和写入与内部处理任务关联的工作模式。 游戏与内部处理任务的交互根据当前配置的工作模式有很大不同。
当 PartyThreadId::Audio 工作模式设置为 PartyWorkMode::Automatic 时,Party 库使用具有实时要求的内部管理、高优先级以及频繁运行的线程执行任务。 在 Windows 和 Xbox 主机上,这些音频线程每 40 毫秒直接与 XAudio2 交互一次。 XAudio2 的 Party 库实例使用处理器关联进行初始化,该处理器关联与通过 PartyManager::SetThreadAffinityMask() 为 PartyThreadId::Audio 配置的处理器关联相对应。 如果没有为此音频线程类型指定处理器关联,XAudio2 的实例使用 XAUDIO2_DEFAULT_PROCESSOR 的处理器关联进行初始化。|
当 PartyThreadId::Networking 工作模式设置为 PartyWorkMode::Automatic 时,在内部创建和管理网络线程。 这些线程由网络 I/O 和轮询机制驱动,每 16 毫秒到 100 毫秒或只要接收到网络流量就会唤醒一次。 这些 PartyThreadId::Networking 线程的处理器关联通过 PartyManager::SetThreadAffinityMask() 进行可选配置。
对于任何工作模式设置为 PartyWorkMode::Manual 的 PartyThreadId 类型,Party 库不创建内部工作线程,而是游戏负责通过定期调用 PartyManager::DoWork() 来执行所需处理。 这些游戏调用的周期性应匹配或超过工作模式为 PartyWorkMode::Automatic 时内部线程使用的最小轮询频率。
要求
标题: Party.h
另请参阅
群成员
PartyManager::GetThreadAffinityMask
PartyManager::SetThreadAffinityMask
PartyManager::SetWorkMode
PartyManager::GetWorkMode
PartyManager::DoWork