SSRS 2008 で asp.net Report Viewer コントロールを使用して、約 100 件のレポートを PDF としてレンダリングし、それらをディスクに保存するアプリケーションがあります。別のスレッドのバックグラウンドで ProcessReports と呼ばれるこのメソッドを実行しようとしています。アイドル状態ではありません/タイムアウトしません (プロセスには約 10 分かかります)。
新しいスレッドを開始すると:
Dim t As New Thread(AddressOf ProcessReports)
t.Start()
メインスレッドで進行状況メッセージをラベルに表示したい
lblMessage1.Visible = True
lblMessage1.Text = "Processing..."
問題: バックグラウンド スレッドが ProcessReports メソッドを実行し、ReportViewer コントロールにヒットした場合:
ReportViewer1.ServerReport.ReportServerUrl = _
New Uri("https://mysite.net/ReportServer")
ReportViewer1.ServerReport.ReportPath = _
"/mypath/My_Report"
ラベルには何も表示されず、次のエラー メッセージが表示され続けます。
Object reference not set to an instance of an object.
メイン スレッドが進行状況メッセージを表示しているときに、ReportViewer コントロールをバックグラウンド スレッドで動作させるにはどうすればよいですか?