語法
參數
handle PFMultiplayerHandle
PFMultiplayer API 執行個體的控制代碼。
stateChangeCount uint32_t*輸出
stateChanges 陣列中供遊戲處理的 PFLobbyStateChange 項目輸出數目。
stateChanges PFLobbyStateChange* const**大小為
*stateChangeCount 的程式庫配置輸出陣列
程式庫配置的輸出陣列,包含供遊戲處理後再傳遞給 PFMultiplayerFinishProcessingLobbyStateChanges() 的所有 PFLobbyStateChange 項目。
傳回值
類型:HRESULT 如果呼叫成功,則為S_OK;否則為錯誤碼。可透過 PFMultiplayerGetErrorMessage() 擷取錯誤碼的人類可讀形式。
備註
此方法讓 Lobby 程式庫有機會與遠端裝置或服務同步狀態,並擷取自上次呼叫此方法以來遊戲目前可用之所有變更的清單。遊戲應使用提供的 0 個或多個變更陣列來更新其自身狀態或 UI,然後及時以這些變更呼叫 PFMultiplayerFinishProcessingLobbyStateChanges()。程式庫公開的 Lobby 程式庫狀態可能會在此呼叫期間變更,因此您使用它時必須保持執行緒安全。例如,在 UI 執行緒上叫用 PFMultiplayerStartProcessingLobbyStateChanges() 的同時,另一個背景工作執行緒正在逐一查看 PFLobbyGetMembers() 所傳回的大廳成員清單,可能會導致當機,因為 PFMultiplayerStartProcessingLobbyStateChanges() 可能會變更與成員清單相關聯的記憶體。應經常呼叫 PFMultiplayerStartProcessingLobbyStateChanges()——至少每個圖形畫面一次。它的設計是快速執行並傳回,因此可以在主 UI 執行緒上呼叫,影響微乎其微。為了獲得最佳結果,您也應盡量縮短在呼叫 PFMultiplayerFinishProcessingLobbyStateChanges() 之前處理狀態變更所花費的時間。
PFMultiplayerStartProcessingLobbyStateChanges() 所傳回的每個狀態變更都必須恰好一次傳回給 PFMultiplayerFinishProcessingLobbyStateChanges(),但可以不按順序傳回,且可以與其他 PFMultiplayerStartProcessingLobbyStateChanges() 呼叫的狀態變更交錯。與特定狀態變更相關聯的任何資源,保證在狀態變更傳回給 PFMultiplayerFinishProcessingLobbyStateChanges() 之前都保持有效。
需求
標頭: PFLobby.h另請參閱
PFLobby 成員PFLobbyStateChange
PFMultiplayerFinishProcessingLobbyStateChanges
