WPF ObservableCollection et mises à jour du thread de fond: un guide de sécurité du thread
> Le WPF ObservableCollection
simplifie la liaison des données, mais la mise à jour à partir des threads d'arrière-plan nécessite une manipulation minutieuse de la sécurité des filetages. Cet article explique le problème et présente une solution à l'aide de fonctionnalités .NET 4.5.
Le défi: la sécurité du fil avec observableCollection
Modification directe d'un ObservableCollection
à partir d'un fil de travail lance une exception, car WPF exige que le thread d'interface utilisateur gère les changements aux collections liées.
La solution: .NET 4.5 Synchronisation
.NET 4.5 introduit BindingOperations.EnableCollectionSynchronization
, simplifiant la synchronisation du thread pour ObservableCollection
. Cette méthode, appelée à partir du fil d'interface utilisateur, gère deux aspects cruciaux:
CollectionChanged
.
Verrouillage coopératif: une clé du succès
tandis que fournit une aide significative, le maintien de la sécurité des fils nécessite une coopération. Les threads d'arrière-plan EnableCollectionSynchronization
doivent acquérir le même verrou utilisé par avant de modifier le EnableCollectionSynchronization
. Cela garantit l'accès synchronisé. ObservableCollection
étapes d'implémentation
lock
BindingOperations.EnableCollectionSynchronization
ObservableCollection
à partir des threads d'arrière-plan, assurer la sécurité des threads et activer l'affichage de données lisse et en temps réel dans vos applications WPF. ObservableCollection
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!