次の問題:
プログラムでファイルをアップロードしたいのですが、ユーザーが設定できる必要があります。ファイルが非常に大きいため、ユーザーが GUI で追加の設定を行えるように、ファイルを新しいスレッドにロードしたいと考えています。(速度:速い)
- ユーザー選択ファイル
- プログラムは新しいスレッドを開始します
- スレッドはファイルをロードしています
- プログラムはディスパッチャーを呼び出して、ファイルをレイアウトに設定します
これまでのところ、ステップ 1 から 3 は問題なく動作します。
しかし、ステップ 4 では、Dispatcher.Invoke を作成します。
private void SetNewContent(object newContent)
{
_userControl.Dispatcher.Invoke(
DispatcherPriority.Normal,
new System.Action(
delegate()
{
_userControl.SetContent(newContent);
}
)
};
}
メソッド _userControl.SetContent は遅いです。このメソッドは 10,000 ページで約 5 秒かかり、ユーザーにとっては長すぎます。この間、ユーザーは GUI 設定を変更できません。
それを防ぐ可能性はありますか?