直接從 WPF 應用程式中的工作執行緒修改 ObservableCollection
會引發異常。 這是 WPF 執行緒模型的結果,旨在在背景任務期間保持 UI 回應能力。
BindingOperations.EnableCollectionSynchronization
.NET 4.5 引入了一個簡化的解決方案:BindingOperations.EnableCollectionSynchronization
。 從UI線程調用,這個方法:
CollectionChanged
事件被編組回 UI 執行緒。 雖然EnableCollectionSynchronization
顯著提高了線程安全性,但開發人員仍然必須遵守最佳實踐:
ObservableCollection
時保持一致鎖定,使用傳遞給 EnableCollectionSynchronization
的相同機制。 lock
語句通常就足夠了,但在複雜的場景中可能需要自訂同步。 EnableCollectionSynchronization
對於正確的功能至關重要。 否則可能會導致意外行為。 以上是如何從 .NET 4.5 中的後台執行緒安全地更新 ObservableCollection?的詳細內容。更多資訊請關注PHP中文網其他相關文章!