从C#中的另一个项目写入ConsoleApplication项目

本文关键字:项目 ConsoleApplication 另一个 | 更新日期: 2023-09-27 18:00:33

我有一个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应用程序调用WriteMessage函数,但这不起作用。我在WriteMessage方法中放了一个断点,它被击中了,但控制台屏幕上什么都没有放,这让我觉得这是因为main中的while循环。我甚至试着把while循环放到另一个线程中,但仍然没有成功。如有任何帮助,我们将不胜感激。

从C#中的另一个项目写入ConsoleApplication项目

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

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

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