다음을 통해 공유


PFMultiplayerStartProcessingLobbyStateChanges

마지막 호출 이후 처리할 모든 PFLobbyStateChanges의 배열을 검색합니다.

구문

HRESULT PFMultiplayerStartProcessingLobbyStateChanges(  
    PFMultiplayerHandle handle,  
    uint32_t* stateChangeCount,  
    const PFLobbyStateChange* const** stateChanges  
)  

매개 변수

handle PFMultiplayerHandle

PFMultiplayer API 인스턴스의 핸들입니다.

stateChangeCount uint32_t*
출력

stateChanges 배열에서 처리할 타이틀에 대한 PLobbyStateChange 항목의 출력 번호입니다.

stateChanges PLobbyStateChange* const**
크기가 *stateChangeCount인 라이브러리 할당 출력 배열

타이틀이 처리한 다음 PFMultiplayerFinishProcessingLobbyStateChanges()로 전달할 모든 PLobbyStateChange 항목의 라이브러리 할당 출력 배열입니다.

반환 값

형식: HRESULT

호출이 성공한 경우 S_OK이고 그렇지 않은 경우 오류 코드입니다. 사람이 읽을 수 있는 형식의 오류 코드는 PFMultiplayerGetErrorMessage()를 통해 검색할 수 있습니다.

설명

이 메서드는 로비 라이브러리에 상태를 원격 장치 또는 서비스와 동기화할 수 있는 기회를 제공하고 이 메서드에 대한 마지막 호출 이후 타이틀에 대해 현재 사용 가능한 모든 변경 내용 목록을 검색합니다. 타이틀은 제공된 0개 이상의 변경 내용 배열을 사용하여 자체 상태 또는 UI를 업데이트한 다음 적시에 PFMultiplayerFinishProcessingLobbyStateChanges()를 호출해야 합니다.

라이브러리에 의해 노출된 대기실 라이브러리 상태는 이 호출 중에 변경될 수 있으므로 사용 시 스레드로부터 안전해야 합니다. 예를 들어 UI 스레드에서 PFMultiplayerStartProcessingLobbyStateChanges()를 호출하는 동시에 별도의 작업자 스레드가 PFLobbyGetMembers()에서 반환된 로비 구성원 목록을 통해 루프를 돌면 PFMultiplayerStartProcessingLobbyStateChanges()가 구성원 목록과 연결된 메모리를 변경할 수 있기 때문에 충돌이 발생할 수 있습니다. PFMultiplayerStartProcessingLobbyStateChanges()는 그래픽 프레임당 적어도 한 번은 자주 호출해야 합니다. 무시해도 될 정도의 영향을 주면서 주 UI 스레드에서 호출할 수 있도록 신속하게 실행하고 반환하도록 설계되었습니다. 최상의 결과를 얻으려면 PFMultiplayerFinishProcessingLobbyStateChanges()를 호출하기 전에 상태 변경을 처리하는 데 소요되는 시간을 최소화해야 합니다.

PFMultiplayerStartProcessingLobbyStateChanges()에 의해 반환된 각 상태 변경은 PFMultiplayerFinishProcessingLobbyStateChanges()에 정확히 한 번 반환되어야 하지만 순서가 맞지 않게 반환될 수 있으며 PFMultiplayerStartProcessingLobbyStateChanges()에 대한 다른 호출의 상태 변경과 인터리빙될 수 있습니다. 특정 상태 변경과 관련된 모든 리소스는 상태 변경이 PFMultiplayerFinishProcessingLobbyStateChanges()로 반환될 때까지 유효하게 유지됩니다.

요구 사항

헤더: PLobby.h

참고 항목

PFLobby 멤버
PFLobbyStateChange
PFMultiplayerFinishProcessingLobbyStateChanges