2在不同线程中运行的控制台应用

时间:2012-11-27 22:25:49

标签: c# .net console

我如何制作它以便我有一个主程序,后台进程“监听”捕获(例如通过sendDebugInfo(例外e)等函数)然后取消隐藏第二个控制台并显示消息但是如果用户关闭调试窗口,它不会退出程序。

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

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

2 个答案:

答案 0 :(得分:3)

您真的在询问进程间通信(IPC)。

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

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

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

答案 1 :(得分:2)

只是为了澄清,说你想在不同的线程中运行两个控制台应用程序有点误导。控制台应用程序通常完全在不同的进程上运行,并且由于线程不在进程之间共享,因此在不同线程中运行的两个控然而,当你明确地说这个时,听起来你正试图在同一个进程上运行它们,但是我甚至不确定可能的不同线程。

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

我建议您阅读IPC,找出适合您需求的方法,并尝试使其发挥作用。当您遇到“我的邮件没有通过”等特定问题时,您应该回来搜索类似问题或创建新问题。