ユーザーで満たされたコンボボックス、選択したユーザーのデータを表示するグリッド、および DoTimeSheetReport() を呼び出すボタンを備えた WPF アプリケーションがあります。
DoTimeSheetReport() は何らかの作業を行った後、SSRS レポートを含む新しいウィンドウを開きます。すべて正常に動作しますが、メソッドが完了するまでに時間がかかります。これは主にレポートが原因で、UI が応答しなくなることを意味します。新しいスレッド/タスクを開始する方法をいくつか試しましたが、それらのすべてが UI のスレッドをブロックしています。私はおそらく何か間違ったことをしているのですが、わかりません。
UI をブロックしないために長いメソッドを呼び出す最善の方法は何ですか?
編集
コードを変更して、時間のかかる部分を分離しました。
reportViewer.SetPageSettings(reportConfiguration.PageSettings);
この部分で backgroundWorker を使用すると、それができました。ご協力ありがとうございました。
@LuisQuijada:うまくいきました。回答を投稿して、受け入れることができます。