6

Microsoft は ObservableCollection に関して素晴らしいアイデアを持っていたようです。それらはバインドに最適で、UI で非常に高速です。

ただし、微調整するたびにディスパッチャー スレッドへのコンテキスト スイッチを要求するのは、少し面倒に思えます。それらを使用するためのベストプラクティスを知っている人はいますか? ビジネス層で ICollection をメッセージ オブジェクトとして設定し、UI 層で ObservableCollection を作成するだけですか? 次に、UI でコレクションの更新をどのように処理しますか?

4

2 に答える 2

2

UI スレッドで ObservableCollection を更新すると、本当にアプリケーションのボトルネックが発生するのでしょうか? そうでない場合は、UI スレッドで更新してください。Dispatcher で何かを実行するときに発生するのは、実際にはコンテキストの切り替えではないことを覚えておいてください。代わりに、OS がいずれかの時点でコンテキストを切り替える、既に実行中のスレッドである UI スレッドにジョブを送信するだけです。 . UI スレッドは、送信されたジョブを内部キューから取り出して実行します。コンテキストスイッチを自分で強制しているわけではありません。

于 2008-10-13T21:00:19.950 に答える
1

古き良きBackgroundWorkerを WPF でも (Windows フォームと同様に) 使用できます。これは WPF のスレッド モデルに採用され、優れた抽象化も提供します。

于 2008-10-13T21:15:59.827 に答える