我有一个应用程序,我需要打开许多与我自己不同且独立运行的表单。然后我的应用程序继续阻止长时间运行的操作(使这些操作异步是不可能的)。所以我想用他们自己的消息泵在一个单独的线程上运行这些表单。
有什么办法吗?
我有一个应用程序,我需要打开许多与我自己不同且独立运行的表单。然后我的应用程序继续阻止长时间运行的操作(使这些操作异步是不可能的)。所以我想用他们自己的消息泵在一个单独的线程上运行这些表单。
有什么办法吗?
Application.Run();
这应该使用自己的消息泵在自己的线程上启动表单。
由于每当调用 Application.Run 时都会创建一个新的 UI 线程,因此这应该可以完成您正在寻找的内容。
编辑#2: http: //msdn.microsoft.com/en-us/library/system.windows.forms.application.run (VS.71).aspx
文档有点模棱两可。我总是通过使用 ThreadPool 并定期将控件编组回表单以呈现状态来完成长时间运行的操作,但听起来您可以使用 Application.Run() 生成多个表单。