2

我有一个 WinForms 和一个 ConsoleApplication 项目。我在启动时启动这两个项目,并希望从 WinForms 应用程序将“实时”信息写入控制台应用程序。控制台应用程序非常简单:

 static void Main(string[] args)
 {
     while (true)
     {
         // This prevents the console from dying
         Console.ReadKey();
     }
  }

  public static void WriteMessage(string message)
  {
     Console.WriteLine(message);
  } 

WriteMessage从 WinForms 应用程序调用该函数,但这不起作用。我在 WriteMessage 方法中放置了一个断点,它被命中了,但控制台屏幕上没有放置任何东西,这让我认为这是因为main. 我什至尝试将 while 循环放在不同的线程中,但仍然没有成功。任何帮助,将不胜感激。

4

1 回答 1

6

控制台属于进程,而不是 Visual Studio 项目

大多数应用程序(包括您的 WinForms 应用程序)都有一个隐藏的控制台。
从 WinForms 进程调用控制台项目WriteMessage()仍会写入 WinForms 进程的控制台,这就是为什么您什么都看不到的原因。

相反,您应该删除控制台项目,然后将Output TypeWinForms 应用程序(在项目属性中)设置为控制台应用程序。
这将使 WinForms 应用程序有一个可见的控制台,这样Console.WriteLine就可以了。

于 2013-02-22T03:35:17.787 回答