私はカスタムTraceListenerと2つのスレッドを持っています。トレースメッセージは最初のスレッドからのみ送信され、2番目のスレッドのTrace.Write()メッセージは送信されません。私は両方のスレッドがアクセス権を持っているが、2つ目のスレッドはまだ出力を生成しない、単一のグローバルTraceListenerを使用しようとしました。複数のスレッドからTraceListenerに書き込む
これを実装して、両方のスレッドが同じTrace出力に書き込むようにするにはどうすればよいですか?トレースリスナが適切にロックを利用している場合、それは可能ですか?
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
}
}