我想我已经失去了我的思想家伙。根据MSDN,TraceSource是线程安全的。所以我有一个简单的控制台应用。在这里,我宣布;跨线程的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来查看它是否只是控制台 - 相同的效果,它不写。 – XeroxDucati 2011-12-28 01:33:21