从C#中的其他项目写入控制台应用程序项目

时间:2013-02-22 03:33:19

标签: c# console console-application

我有一个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);
  } 

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

1 个答案:

答案 0 :(得分:6)

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

大多数应用程序(包括您的WinForms应用程序)都有一个隐藏的控制台 从WinForms进程调用控制台项目的WriteMessage()仍然写入WinForms进程的控制台,这就是为什么你没有看到任何东西..

相反,您应该删除控制台项目,然后将WinForms应用程序的Output Type(在项目属性中)设置为控制台应用程序。
这将使WinForms应用程序具有可见的控制台,以便Console.WriteLine可以正常工作。