在后台辅助角色上运行的 C# 报表查看器.导出/打印锁定应用程序
本文关键字:导出 应用程序 锁定 打印 报表 后台 角色 运行 | 更新日期: 2023-09-27 18:31:11
我已经设置了我的报告列表,以便它通过后台工作者打开一个表单:
if (bw_ReportWorker.IsBusy != true)
{
// start it
bw_ReportWorker.RunWorkerAsync();
}
在DoWork()中是这样的:
private void bw_ReportWorker_DoWork(object sender, DoWorkEventArgs e)
{
_rl = new ReportList();
_rl.ShowDialog();
}
出现报告列表,然后您可以选择所需的报告。选择报表时,将打开适用于报表的另一个窗口。所有报告都正确显示在屏幕上,但是一旦我尝试打印或导出,应用程序就会挂起。如果我在不使用 BackgorundWorker 的情况下导出和打印报告列表,我可以导出和打印我想要的所有内容。为什么会挂起?以及如何解决这个问题?该程序在 Winforms 中与 .NET 4.5
谢谢
您
正在从工作线程运行对话框。 这不是一个好的行为。 这就是 UI 挂起的原因。 唯一应该运行 Dialog(顺便说一下,它挂起打开窗体)的线程是 UI 线程。
如果要打开窗体而不挂起打开窗体的窗体,请使用 Show()