다음을 통해 공유


ResourceMirror.Sync<ItemType,ResourceType> 메서드

정의

정렬된 원본 데이터 항목 목록(currentItems) 및 정렬된 리소스 목록이 지정된 경우: 일치하는 리소스가 없는 각 원본 항목에 대해 리소스를 만들려고 시도합니다. 일치하는 원본 항목이 없는 각 리소스에 대해 해당 리소스를 삭제합니다. 일치하는 리소스가 있는 각 원본 항목에 대해 리소스를 업데이트합니다.

public static void Sync<ItemType,ResourceType> (System.Collections.Generic.IReadOnlyList<ItemType> currentItems, System.Collections.Generic.List<ResourceType> resources, Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.CompareToResource<ItemType,ResourceType> compareIds, Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.CreateResource<ItemType,ResourceType> creator, Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.UpdateResource<ItemType,ResourceType> updater, Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.DestroyResource<ResourceType> destroyer);
static member Sync : System.Collections.Generic.IReadOnlyList<'ItemType> * System.Collections.Generic.List<'ResourceType> * Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.CompareToResource<'ItemType, 'ResourceType> * Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.CreateResource<'ItemType, 'ResourceType> * Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.UpdateResource<'ItemType, 'ResourceType> * Microsoft.MixedReality.WorldLocking.Core.ResourceMirror.DestroyResource<'ResourceType> -> unit
Public Shared Sub Sync(Of ItemType, ResourceType) (currentItems As IReadOnlyList(Of ItemType), resources As List(Of ResourceType), compareIds As ResourceMirror.CompareToResource(Of ItemType, ResourceType), creator As ResourceMirror.CreateResource(Of ItemType, ResourceType), updater As ResourceMirror.UpdateResource(Of ItemType, ResourceType), destroyer As ResourceMirror.DestroyResource(Of ResourceType))

형식 매개 변수

ItemType

원본 항목의 유형입니다.

ResourceType

리소스 유형입니다.

매개 변수

currentItems
IReadOnlyList<ItemType>

현재 원본 항목 목록입니다.

resources
List<ResourceType>

currentItems에 동기화된 에 대한 리소스 목록입니다.

compareIds
ResourceMirror.CompareToResource<ItemType,ResourceType>

항목을 리소스와 비교하는 함수입니다. 위 내용을 참조하세요.

creator
ResourceMirror.CreateResource<ItemType,ResourceType>

콜백을 사용하여 누락된 리소스를 만듭니다. 위 내용을 참조하세요.

updater
ResourceMirror.UpdateResource<ItemType,ResourceType>

기존 리소스를 업데이트하기 위한 콜백입니다. 위 내용을 참조하세요.

destroyer
ResourceMirror.DestroyResource<ResourceType>

더 이상 일치하는 원본 항목이 없는 리소스를 삭제하는 콜백입니다.

설명

이 동기화 후에는 리소스 목록에 currentItems의 각 항목에 대해 정확히 하나의 리소스가 있으며 currentItems 및 리소스의 길이는 동일합니다. 예외는 작성자 함수가 모든 항목에 대해 false를 반환하면 해당 항목에 일치하는 리소스가 없으며 리소스가 currentItems보다 짧습니다. 어쨌든 리소스는 정렬된 상태로 유지됩니다. 동기화는 데이터를 한 번의 패스로 완료하므로 O(max(currentItems.Count, 리소스)에서 완료됩니다. Count)) 시간입니다.

적용 대상