我有一个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循环放在不同的线程中,但仍然没有成功。任何帮助将不胜感激。
答案 0 :(得分:6)
大多数应用程序(包括您的WinForms应用程序)都有一个隐藏的控制台
从WinForms进程调用控制台项目的WriteMessage()
仍然写入WinForms进程的控制台,这就是为什么你没有看到任何东西..
相反,您应该删除控制台项目,然后将WinForms应用程序的Output Type
(在项目属性中)设置为控制台应用程序。
这将使WinForms应用程序具有可见的控制台,以便Console.WriteLine
可以正常工作。