WPF ObservableCollectionとBackground Swrepの更新:スレッド安全ガイド WPFの
はデータバインディングを簡素化しますが、バックグラウンドスレッドから更新するには、スレッドの安全性を慎重に処理する必要があります。 この記事では、問題について説明し、.NET 4.5機能を使用してソリューションを提示します。ObservableCollection
課題:観察のあるスレッドの安全性
WPFはUIスレッドがバインドコレクションへの変更を処理することを要求するため、ワーカースレッドからを直接変更することは例外をスローします。
ソリューション:.NET 4.5同期ObservableCollection
を導入します。 UIスレッドから呼び出されるこの方法は、2つの重要な側面を処理します。
スレッドの識別:uiスレッドを識別し、BindingOperations.EnableCollectionSynchronization
イベントを指示します。
ObservableCollection
CollectionChanged
実装手順
EnableCollectionSynchronization
ロックメカニズムを選択します:EnableCollectionSynchronization
単純なObservableCollection
ステートメントまたはカスタムロックメカニズムを使用できます。
enable synchronization(uiスレッド):uiスレッドでコール
コレクションと選択したロックメカニズムを提供します。lock
この協力的なロックアプローチに従うことにより、バックグラウンドスレッドから以上がWPFのワーカースレッドからの観測可能な収集を安全に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。