1

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 コントロールをバックグラウンド スレッドで動作させるにはどうすればよいですか?

4

0 に答える 0