2013-04-30 73 views
0

我在C#中有一个包含两个项目的解决方案。一个是Windows窗体应用程序,另一个是控制台应用程序。这两个项目都设置为在程序运行时启动。我正在使用控制台应用程序来执行用户不需要知道的一些任务,因此我已将输出类型设置为Windows窗体应用程序。 现在,控制台应用程序已完成其关闭的任务,但我希望能够通过按下按钮通过Windows窗体应用程序再次执行它。 我该怎么做?
另外,当我在我的Windows窗体应用程序上使用Application.Exit()时,它是关闭这两个项目还是只关闭Windows窗体?如何在一个解决方案中的项目之间进行通信?

回答

1

现在后,控制台应用程序已完成其任务,它会关闭,但我 希望能够通过我的Windows再次执行按一个按钮形成 应用。我该怎么做呢 ?

只要使用Process.Start就可以传递一个路径到您的控制台可执行文件。

另外,当我在我的Windows窗体应用程序 上使用Application.Exit()时,是否会关闭这两个项目或只是Windows Form?

应用程序是程序集的执行上下文,换句话说,它指的是代码被执行的EXE。所以在你的情况下,它只会关闭你的WindowsForms应用程序。

+0

如果控制台应用程序在后台运行,该怎么办?有什么办法可以告诉它重新开始? – 2013-04-30 09:40:57

+0

@WaqasAli:Process.Start将启动一个新的*应用程序应用程序实例,因此您将在内存中拥有两个Console EXE实例。希望这可以帮助。 – Tigran 2013-04-30 09:49:19

+0

噢好吧, 谢谢 – 2013-04-30 09:50:30

0

只要您在控制台应用程序中需要的方法是公开的,您应该可以直接从其他应用程序调用它们。只需在调用项目中添加对其的引用即可。实际上,如果你想要这样的普通东西,你可以考虑将公共逻辑放在一个单独的项目中,构建为.dll,并让控制台和winforms项目在需要时使用它。

+0

dll的想法来找我,我已经建立了一个,但我想要在程序启动(它自动执行)和用户关闭WinForm应用程序时执行控制台应用程序。 – 2013-04-30 09:40:08

相关问题