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