BindingBase.EnableCollectionSynchronization Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запускает синхронизацию на collection с помощью callback и context.
public static void EnableCollectionSynchronization(System.Collections.IEnumerable collection, object context, Xamarin.Forms.CollectionSynchronizationCallback callback);
static member EnableCollectionSynchronization : System.Collections.IEnumerable * obj * Xamarin.Forms.CollectionSynchronizationCallback -> unit
Параметры
- collection
- System.Collections.IEnumerable
Коллекция, которая будет прочитана или обновлена.
- context
- System.Object
Контекст или объект блокировки, который будет передан в callback. Может иметь значение null.
- callback
- CollectionSynchronizationCallback
Обратный вызов синхронизации.
Комментарии
Разработчики приложений реализуют callback и передают его методу EnableCollectionSynchronization(IEnumerable, Object, CollectionSynchronizationCallback) , чтобы обеспечить правильный многопоточный доступ к collection. После включения синхронизации Xamarin. Forms платформа передает метод доступа и bool , который указывает, contextтребуется ли доступ на запись, в реализацию CollectionSynchronizationCallback разработчика приложения каждый раз, когда платформе необходимо изменить коллекцию в многопоточной среде. Реализация разработчика приложения должна решать, исходя context из writeAccessbool объекта (который может быть просто блокирующим объектом или объектом, на котором находится коллекция) и значения параметра, следует ли использовать lock при вызове accessMethod.
Потому что Xamarin. Forms сохраняет слабую ссылку collectionна , разработчикам приложений не нужно вызывать помощь DisableCollectionSynchronization(IEnumerable) в сборке мусора.