私の WPF C# アプリケーションでは、処理中に小さな円のアニメーションを表示して、アプリケーションが "考えている" ことをユーザーに知らせ、リラックスする必要があります。別のexeです。たとえば、ユーザーがボタンをクリックして分析を実行すると (5 ~ 10 秒かかる場合があります)、アニメーションを表示するプロセスを開始し、すべてが完了したらプロセスを停止します。この間、バックグラウンド タスクを処理するためにサブスレッドが新たに生成されました。完了すると UI が更新されますが、データグリッドが複雑なため数秒かかる場合があります。
これは技術的には機能しますが、別の方法でアプローチしたいと思います。スレッドが動作しているときにアプリケーションが自動検出してアニメーションを自動的に表示し、スレッドがすべて完了すると、アニメーションの表示を停止するようにしたいと思います。バックグラウンド スレッドは簡単に検出できますが、UI スレッドを検出するにはどうすればよいですか? 誤ってアプリケーションを強制終了するのを逃したことが何度かあり、処理が完了した後もアプリケーションがまだ実行されていたので、私はむしろこの方法でやりたいと思います。これはそれを防ぐでしょう。
UI スレッドの開始時と停止時に発生するイベントはありますか? そうでない場合は、1/2 秒ごとに起動するタイマーをそこに投げたとしましょう。UI スレッドの状態を教えてくれる呼び出しはありますか?
ありがとう