【发布时间】:2014-07-18 05:35:14
【问题描述】:
我在我的应用程序中使用后台工作程序。在我生成报告之前,后台工作人员没有问题。生成 devexpress 报告后,如果我想保存文档,则会出现以下错误。
"当前线程必须设置为单线程单元(STA)模式 在需要 OLE 之前。请确保您有 [STAThreadAttribute] 你的主要功能。”
我尝试清除 /obj/ 中的 ddl,但它不起作用。
我的主要代码是:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmUxLogin());
}
我的backgrounfworker代码是(不是WinForm,是类):
public bool GoalReport(string val, string goalid)
{
try
{
worker.WorkerReportsProgress = true;
worker.DoWork += (obj, args) =>
{
//Performing calculations and generating report
};
worker.ProgressChanged += (obj, args) =>
{
MDIMain objMain = Application.OpenForms["MDIMain"] as MDIMain;
};
worker.RunWorkerAsync();
}
catch(Exception)
{
}
}
**My code for report generation is**
private void CreateSummaryGoalReportTables(DataTable dtcurrent, DataTable dtportfolio, DataTable achieveTargetPropbabilty)
{// after clicking export on devexpress the exception occured here
}<==ThreadStateException
报告也在生成,但我无法导出报告。 devexpress 提供了内置函数来保存报告。 我没有为报告导出编码。 请帮忙!!! 提前致谢
【问题讨论】:
-
在我完全生成报告并尝试保存报告后发生错误。
标签: c# multithreading winforms devexpress backgroundworker