我最初创建了一个Windows窗体,作为我的项目主窗体的对话框。现在,对话框变得越来越复杂,需要在自己的进程中启动。有没有办法在代码中执行此操作,还是需要创建一个新项目并将我的文件链接到它?
答案 0 :(得分:3)
我在这里质疑这个前提 - 没有理由在一个单独的过程中开始一个新的“形式”。但是,如果表单变得那么复杂,我建议将其简化,如果除了可用性之外没有其他原因。
话虽如此,您始终可以通过代码中的Process.Start启动新流程。如果您希望它在同一个项目中,但是启动一个单独的进程,您可以使用命令行参数启动执行的exe,该参数允许您切换启动时加载的“表单”。
答案 1 :(得分:1)
您需要设置一个通信层(使用命名管道的WCF可能是最好的方法)。
但我会严肃质疑为什么你需要为你的表单新的流程?确保您在表单上执行的任何工作都是在单独的线程上完成的。这样你可以打开几十种表单,但你的应用程序仍然会非常敏感。
这不是最好的解决方案,但是如果你试图避免重写,那么对Application.DoEvents
的调用会抽取消息队列并在你的UI上发生大量更新时获得一些响应能力。乐队援助解决你的问题。