PartyManager::StartProcessingStateChanges

检索自上次此类调用后要处理的所有 PartyStateChanges 的数组。

语法

PartyError StartProcessingStateChanges(  
    uint32_t* stateChangeCount,  
    PartyStateChangeArray* stateChanges  
)  

参数

stateChangeCount uint32_t*
输出

要在 stateChanges 数组中处理的游戏的 PartyStateChange 条目输出数。

stateChangesPartyStateChangeArray*
库分配的输出数组大小*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