実際、バックグラウンド スレッドで実行時間の長いプロセスを実行することはできません。長時間実行されるプロセスは、UI から直接入力を取得し、変更をデータベースに保存する必要があります。そのため、この長時間実行されるプロセスは、Dispatch コード内に記述されているにもかかわらず、バックグラウンド スレッドで入力にアクセスできません (以下を参照)。
this.Dispatcher.Invoke((Action)(() =>
{
...//The long running process inside background thread.
}));
私の基本は、長時間実行されるプロセスの実行中にユーザーが他の場所をクリックできないようにすることです。それで、これを行うことができる他の方法はありますか?