4

かなり大きな監視可能なコレクションを含むビュー モデルがある Windows 8 ストア アプリケーションを作成しています。ときどきモデルからイベントを取得し、監視可能なコレクションを更新するためにかなり長いプロセスを開始します。現在、プロセスがUIスレッドで実行されており、UIを数秒間ロックしていることを除けば、うまく機能します。これは、UI開発のかなり悪い習慣です...

UI をブロックすることなく計算が行われ、監視可能なコレクションの更新が UI スレッドで一度に 1 つずつ行われるように、重い計算をタスクに移動したいと考えました。WPF には、ビュー モデル コンストラクターで次のコードを使用して、正確にそれを行うことができるメカニズムがあります。

var myLock = new object();
var myList = new ObservableCollection<ItemType>();
BindingOperations.EnableCollectionSynchronization(myList, myLock);

次に、監視可能なコレクションへの各更新をロック ブロックでラップします。WinRT で同じことをしようとしましたが、BindingOperations にはこのメソッドがないようです。

WinRT で同じことを達成するための許容できるベスト プラクティスはありますか?

さん、

4

0 に答える 0