다음을 통해 공유


PartyManager::StartProcessingStateChanges

마지막 호출 이후 처리할 모든 PartyStateChanges를 검색합니다.

구문

PartyError StartProcessingStateChanges(  
    uint32_t* stateChangeCount,  
    PartyStateChangeArray* stateChanges  
)  

매개 변수

stateChangeCount uint32_t*
출력

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

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

타이틀이 처리 후 FinishProcessingStateChanges()로 전달할 모든 PartyStateChange 항목의 라이브러리에서 할당한 출력 배열입니다.

반환 값

PartyError

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

비고

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

라이브러리가 노출시킨 파티 라이브러리 상태는 이 호출 중에 변경될 수 있으므로 이 라이브러리를 사용할 때 스레드로부터 안전해야 합니다. 예를 들어 UI 스레드에서 StartProcessingStateChanges()를 호출하는 동시에 별도의 작업자 스레드가 PartyNetwork::GetEndpoints()로부터 반환된 엔드포인트 목록을 반복할 경우 StartProcessingStateChanges()가 엔드포인트 목록과 연결된 메모리를 변경할 수 있기 때문에 충돌이 발생할 수 있습니다. StartProcessingStateChanges()는 그래픽 프레임당 한 번 이상으로 자주 호출해야 합니다. 무시할 만한 영향을 주면서 주 UI 스레드에서 호출할 수 있도록 신속하게 실행하고 반환하도록 설계되었습니다. 최상의 결과를 얻으려면 FinishProcessingStateChanges()를 호출하기 전에 상태 변경을 처리하는 데 걸리는 시간도 최소화해야 합니다.

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

요구 사항

헤더: Party.h

참고 항목

PartyManager
PartyStateChange
PartyManager::FinishProcessingStateChanges