かなり長いプロセスが実行されているため、しばらくの間アプリケーションがフリーズします。
このプロセスをバックグラウンドワーカーでラップして、ユーザーにステータスを提供するにはどうすればよいですか。
理想的には、プロセス自体が進行状況を報告する必要があることを知っていますが、それを組み込むことができるとは思いません。そのプロセスでコードを変更できないわけではありませんが、あまり変更したくありません。
アプリの応答性を維持できるように、バックグラウンドワーカーでプロセスを開始できれば幸いです。今、これは私ができる。しかし、問題は、プロセスがまだ実行中であることを示すためにプログレスバーに何かを実行させる簡単な方法はありますか?
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
StartLongRunningProcess();
}
私のコードは上記のようになりましたが、プログレスバーを更新できるようにプロセスをラップする方法を考えていましたか?または、コードを完全に変更せずに、このプロセスからより多くの情報を取得する簡単な方法はありますか?その長時間実行プロセス内には、変更された行カウンターが実行されていますが、値は終了時にのみ返されます。
backgroundworkerとそのReportProgressオプションがどのように機能するかは知っていますが、問題は、プロセスが実行されるだけで、実行中にフィードバックが提供されないことです。