PartyManager::StartProcessingStateChanges
检索自上次此类调用后要处理的所有 PartyStateChanges 的数组。
语法
PartyError StartProcessingStateChanges(
uint32_t* stateChangeCount,
PartyStateChangeArray* stateChanges
)
参数
stateChangeCount
uint32_t*
输出
要在 stateChanges
数组中处理的游戏的 PartyStateChange 条目输出数。
stateChanges
PartyStateChangeArray*
库分配的输出数组大小*stateChangeCount
库分配的输出数组,包括要处理的游戏的所有 PartyStateChange 条目,然后传递到 FinishProcessingStateChanges()。
返回值
PartyError
如果调用成功,则为 c_partyErrorSuccess
,否则为错误代码。 可通过 GetErrorMessage() 检索错误代码的可读形式。
备注
此方法为群库提供了与远程设备或服务同步状态的机会,并检索自上次调用此方法后当前对该游戏可用的所有更改列表。 游戏应使用提供的 0 个或多个更改数组来更新自己的状态或 UI,然后及时使用它们调用 FinishProcessingStateChanges()。
此调用期间,由库公开群库状态可以更改,因此使用时确保必须线程安全。 例如,在一个单独的辅助线程循环访问由 PartyNetwork::GetEndpoints() 返回的终结点列表的同时调用 StartProcessingStateChanges() 可能会导致崩溃,因为 StartProcessingStateChanges() 可能会更改与该终结点列表关联的内存。 应当经常调用 StartProcessingStateChanges() - 每个图形框架至少调用一次。 它旨在快速执行和返回,从而可以在主 UI 线程上调用它,而且影响可以忽略不计。 为获得最佳结果,还应在调用 FinishProcessingStateChanges() 之前尽量减少处理状态更改所花费的时间。
StartProcessingStateChanges() 返回的每个状态更改必须恰好返回给 FinishProcessingStateChanges() 一次,但可能会无序返回,并且可能与对 StartProcessingStateChanges() 的其他调用的状态更改交错。 与特定状态更改相关联的任何资源在状态更改返回到 FinishProcessingStateChanges() 之前都保证保持有效。
要求
标题: Party.h
另请参阅
PartyManager
PartyStateChange
PartyManager::FinishProcessingStateChanges