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