【发布时间】:2014-01-28 11:24:38
【问题描述】:
我需要在另一个线程上创建一个表单,就像应用程序启动时的启动屏幕一样。
LoadingMyForm w = null;
Thread thread = new Thread(() =>
{
try
{
w = new LoadingMyForm();
w.Show();
System.Windows.Threading.Dispatcher.Run();
}
catch (Exception ex)
{
w.Close();
w = null;
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
这暂时有效,但要停止它,我必须调用thread.Abort();,这将引发异常,当我捕获该异常时,如您所见,我关闭窗口。是否有某种机制可以返回线程执行上下文并在表单上调用Close 方法?
据我了解:
System.Windows.Threading.Dispatcher.Run();
使我的线程保持活动状态,因此至少可以分配其他操作在该线程上运行吗?
【问题讨论】:
标签: c# .net wpf multithreading user-interface