根据文档http://msdn.microsoft.com/en-us/library/dn775009%28v=pandp.20%29.aspx,当前活动ID应由TPL处理。但是当我得到结果时,来自不同任务的日志事件属于不同的活动。
要读取我在进程SemanticLogging-svc.2.0.1406.1之外使用的消息
工作流程如下:
1.我设置了活动ID,应该使用它。 EventSource.SetCurrentThreadActivityId。
2.然后我在同一个线程中有一些代码,但也可以在不同的线程中有很多代码。示例(来自以下任务的日志消息记录为不同的活动ID):
Events.Current.TestMethod3();
Task.WaitAll(Task.Factory.StartNew(() =>
{
for (int i = 0; i < 10; i++)
{
Events.Current.TestMethod1_Sleep(50);
System.Threading.Thread.Sleep(50);
Events.Current.TestMethod2_Continue();
}
}),
Task.Factory.StartNew(() =>
{
for (int i = 0; i < 10; i++)
{
Events.Current.TestMethod1_Sleep(60);
System.Threading.Thread.Sleep(60);
Events.Current.TestMethod2_Continue();
}
}));
Events.Current.TestMethod3();
任何想法如何解决?也许我会做一些特别的事来解决这个问题?