【发布时间】:2012-01-28 20:18:17
【问题描述】:
伙计们,我想我已经失去理智了。根据 MSDN,TraceSource 是线程安全的。所以我有一个简单的控制台应用程序。我在其中声明;
private static readonly TraceSource ActiveTraceSource = new TraceSource("Test");
在我的 app.config 中,我有;
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="consoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
</listeners>
</trace>
</system.diagnostics>
在我的 main() 中,我做了类似的事情;
ActiveTraceSource.TraceInformation("Hi!");
效果很好,我有你好!在我的控制台上。然后我这样做;
new Thread(DoWork).Start();
在 DoWork 内部,我做同样的事情;
ActiveTraceSource.TraceInformation("Hi!");
应该工作,但我没有得到第二个“嗨!”。设置断点显示 DoWork 有一个 ActiveTraceSource 实例,并且集合中有一个侦听器,但控制台中没有。
这是控制台侦听器中的错误吗?我错过了什么吗?
【问题讨论】:
-
我添加了一个TextWriterListener,看看它是否只是控制台——同样的效果,它不写。
标签: c# c#-4.0 system.diagnostics