.net winform程序调试时报如下错误: System.Threading.ThreadStateException HResult=0x80131520 Message=在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试程序附加到该进程才会引发此异常。 Source=<无法计算异常源> StackTrace: <无法计算异常堆栈跟踪> 以下为截图: 按提示将当前线程设置为STA模式,如下所示, Thread.CurrentThread.SetApartmentState(ApartmentState.STA); 但还报如下错误: 既然主线程不行,那么新建一个线程呢?于是如下进行了一番操作。 protected void BtnUpdateExcel_Click(object sender, EventArgs e) { Thread thread = new Thread(new ThreadStart(ImportData)); thread.SetApartmentState(ApartmentState.STA); thread.Start();
while (thread.ThreadState==ThreadState.Stopped) { GvUpdateData.DataSource = dtUpdate; GvUpdateData.DataBind(); } } Datatable dtUpdate; public void ImportData() { dtUpdate = GetDataFromExcelByConn(true); } 如上后正常……但为什么要如此,还有些疑惑,记之以备忘。 |
|