首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个线程写入TraceListener

从多个线程写入TraceListener
EN

Stack Overflow用户
提问于 2011-01-20 03:33:15
回答 2查看 2.4K关注 0票数 1

我有一个自定义的TraceListener和两个线程。跟踪消息仅来自第一线程,而第二个线程的Trace.Write()消息不会通过。我尝试使用两个线程都可以访问的单个全局TraceListener,但第二个线程仍然不产生任何输出。

我如何实现这一点,以便两个线程都写入到相同的跟踪输出?如果跟踪侦听器适当地利用锁定,是否可以这样做?

代码语言:javascript
复制
void Initialize()
{
    Trace.Listeners.Add(App.CustomTraceListener);
    Trace.Write("test?"); // this produces output
    var start = new ThreadStart(Run);
    var thread = new Thread(start);
    thread.Start();
}

void Run()
{
    while(true)
    {
      Thread.Sleep(1000);
      Trace.Write("hello from second thread"); // this does not produce anything
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-20 03:58:31

thread.Start();之后或在Run();内调用Trace.Flush();,您将看到输出。

票数 1
EN

Stack Overflow用户

发布于 2011-06-06 13:03:40

此外,添加Trace.AutoFlush = true的效果也很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4739753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档