【发布时间】:2016-06-27 20:44:35
【问题描述】:
我有一个方法可以将我的DataGrid 的内容导出到CSV 文件。我正在尝试显示一个带有动画的Window,要求用户等待。
但是,当我显示 Window 时,动画会冻结,所以我认为这是因为 excel 方法在同一个线程上运行时会冻结。
到目前为止我尝试过的是这个;
var waitWindow = new PleaseWaitWindow();
var newWindowThread = new Thread(() =>
{
waitWindow.Show();
System.Windows.Threading.Dispatcher.Run();
});
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();
ExcelExport();
waitWindow.Close();
但这会导致错误;
The calling thread cannot access this object because a different thread owns it.
如何启动一个新线程,以便在导出 excel 方法时动画不会冻结?
【问题讨论】:
-
我认为导出操作应该在非UI线程中进行
-
为什么不在单独的线程中运行
ExcelExport方法?
标签: c# wpf multithreading