Поделиться через


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 будет одинаковой. Исключением является то, что если функция creator возвращает значение false для любых элементов, то эти элементы не будут иметь соответствующих ресурсов, а ресурсы будут короче, чем currentItems. В любом случае ресурсы будут отсортированы. Синхронизация завершается за один проход по данным, поэтому в O(max(currentItems.Count, resources. Количество)) время.

Применяется к