我们在调试程序时,通常会将日志输出到
控制台
,以监控其运行状态是否符合预期。对于一个
C# GUI
程序(如
WinForms
或
WPF
)而言,如果在
IDE
中进行调试运行,
Console.WriteLine()
方法会将内容输出到
IDE
的控制台中。然而在同一时间内,
IDE
只能呈现单个程序的控制台输出,如果涉及到多个
GUI
程序的联合调试,应该如何将其它程序的控制台输出也呈现出来呢?
例如,一个
Visual Studio(VS)
解决方案(
Solution
)中有
A
和
B
两个
WPF
项目(
Project
),其对应的编译产物分别为
A.exe
和
B.exe
,假设
A.exe
在启动时会调起
B.exe
;当我们在
VS
中调试运行
A
项目时,
B
项目会随之启动,但是
B
项目中
Console.WriteLine()
的内容不会呈现在
VS
的控制台中,那么我们应该如何调出控制台来呈现呢?另外,我们在生产环境中运行
GUI
程序时,有时也需要将一些信息输出到
控制台
来辅助我们定位问题。
如上所述,本文将要讨论的便是
如何在
C# GUI
程序中显示控制台
。通常来讲,在
Windows
系统上,
每个进程最多可以和一个控制台关联,每个控制台可以被多个进程关联
。
GUI
程序初始化的时候并没有控制台,在
IDE
中进行调试时,之所以能看见
Console.WriteLine()
输出,是因为
IDE
为
GUI
进程关联了控制台。要对控制台进行操作,需要了解如下
Windows API
: