私は、ページが読み込まれたときにフォアグラウンドで実行するのではなく、バックグラウンドスレッドにデータ読み込み部分を置くことで、WP7アプリケーションのページのUIをよりレスポンシブにしようとしています。Windows Phone:Deployment.Current.Dispatcher.BeginInvokeが完了したときの通知方法
スレッドコードは基本的にいくつかのデータを処理し、観察可能なコレクションに項目を追加します。コレクションに項目の追加は、UIスレッドで実行されるように
Deployment.Current.Dispatcher.BeginInvoke(() => { _events.Add(_newItem); });
:例外の問題を避けるために、私は次のように実行します。
私が今打っている問題は、新しい項目を追加するのではなく新しい場所を挿入するために、コードの次の部分がforeachの foreachを実行する必要があるということです。残念ながら、私が見ているのは、UIスレッドがforeachループにいる間にAddを実行して、即座にforeachを壊すことがあるということです。
私が行った読書から、UIピースが完了するまでバックグラウンドスレッドをブロックするために、EndInvoke()を呼び出す方法があるようです。残念ながら、それはWp7/Silverlight実装がEndInvokeをサポートしていないようです。
foreachを開始する前にAddが完了していることを確認するための提案はありますか?
ありがとうございました。
フィリップ