繁体   English   中英

如何使用自己的消息泵运行表单?

[英]How to run a form with its own message pump?

我有一个应用程序,我需要打开许多 forms,它们与我自己的不同并独立运行。 然后我的应用程序继续阻止长时间运行的操作(使这些操作异步是不可能的)。 所以我想用它们自己的消息泵在单独的线程上运行这些 forms。

有什么办法吗?

Application.Run();

这应该在自己的线程上启动表单,并使用自己的消息泵。

编辑: http//en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0%E2%80%94Application_Lifetime

由于每当调用Application.Run时都会创建一个新的UI线程,因此这应该可以完成您要查找的内容。

编辑#2: http//msdn.microsoft.com/en-us/library/system.windows.forms.application.run(VS.71).aspx

文档有点含糊不清。 我总是使用ThreadPool完成长时间运行操作,并定期将控件回调到表单以呈现状态,但听起来你可以使用Application.Run()生成多个表单。

使用重载 Application.Run(ApplicationContext)。 之前创建一个 ApplicationContext,给它表单 (context.MainForm=yourForm)。 当窗体关闭或以其他方式完成时,调用 ApplicationContext.ExitThread()。 快乐的编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM