0

我将如何做到这一点,以便我拥有一个带有后台进程的主程序,该进程“侦听”捕获(例如通过类似 sendDebugInfo(Exception e) 的函数),然后取消隐藏第二个控制台并显示消息,但如果用户关闭调试窗口它不会退出程序。

如果以上内容不够清楚,这里有一个简单的版本:

使用控制台应用程序 1 函数 helloWord() 控制台应用程序 1 函数 helloWorld() 将字符串发送到第二个控制台窗口(但在同一个项目中) 第二个控制台显示“hello world”。

4

2 回答 2

3

您实际上是在询问进程间通信(IPC)。

有很多方法可以实现IPC。我建议你看看命名管道。它们易于使用且非常可靠。

http://msdn.microsoft.com/en-us/library/system.io.pipes.aspx

命名管道背后的基本思想是,您有一个命名资源,您可以在一个进程中写入消息并从另一个进程中读取消息。消息可以是任何你想要的。进程只需使用预先商定的名称即可连接到管道。

于 2012-11-27T22:29:55.173 回答
2

只是为了澄清,说您希望两个控制台应用程序在不同的线程中运行有点误导。控制台应用程序通常完全在不同的进程上运行,并且由于进程之间不共享线程,因此两个控制台应用程序在不同的线程中运行是常态。但是,当您明确地说出这句话时,听起来您是在尝试在同一进程上运行它们,但是我什至不确定是否可能在不同的线程上运行它们。

也就是说,Eric J. 是对的,您似乎真的在询问可以通过多种方式执行的 IPC。命名管道是一种方式,而 TCP 环回是另一种方式。如果您希望这些应用程序在某些时候在不同的机器上运行,您将需要使用 TCP。否则命名管道更容易处理。

我建议阅读 IPC,找出适合您需求的方法并尝试使其发挥作用。当您遇到诸如“我的消息未通过”之类的特定问题时,您应该返回并搜索类似的问题或创建一个新问题。

于 2012-11-27T23:15:00.340 回答