跳轉到主要內容
擷取自上次此類呼叫以來要處理的所有 PFLobbyStateChanges 陣列。

語法

參數

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
最後修改於 2026年10月8日