내 응용 프로그램에서 백그라운드 작업자를 사용하고 있습니다. 보고서를 생성 할 때까지 배경 작업자에게 아무런 문제가 없습니다. 문서를 저장하려면 devexpress 보고서를 생성 한 후 다음 오류가 발생합니다.백그라운드 작업자 스레드 예외
는 "현재 스레드가 단일 스레드 아파트로 설정해야합니다 (STA)는 OLE 전에 모드 는 required.Please 당신이 [STAThreadAttribute] 주요 기능에서이 있는지 확인합니다."
ddl의/obj /를 지우려고했지만 작동하지 않습니다.
내 주요 코드는입니다 :
[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는 내장 함수를 사용하여 보고서를 저장합니다. 보고서 내보내기 용으로 코딩하지 않았습니다. 도와주세요! 미리 감사드립니다.
을하고 그것을 오류를 저장하는 동안 발생합니다. – Jack