昨天调式一个多线程的程序,发现一个TraceListener的问题,我自己实现了一个TraceListeer,让信息输入到一个窗体中的文本框,而不是VS信息框。当我在另一个线程中输入时,发现线程有时候竟然会阻塞,有时候又不会,好奇怪,原因到现在还没有搞清楚,多线程的程序真是难写。
还发现另一个在WinForm程序使用调式功能的技巧:把工程的属性从Windows窗体程序,改为Console程序,然后在程序的入口处添加代码把ConsoleTraceListener加入到Trace.Listerner。C#代码如下:Trace.Listeners.Add(new ConsoleTraceListener() ); 然后启动程序就会先出现一个Console窗体,再出现原来的WinForm窗体,所有的Trace就会在Console程序中显示。如果要取消这个功能,只需要把工程的属性修改过来。调式的时候很好用。