Согласно документации http://msdn.microsoft.com/en-us/library/dn775009%28v=pandp.20%29.aspx идентификатор текущего действия должен обрабатываться TPL. Но когда я получаю результаты, события журнала из разных задач относятся к разным действиям. Для чтения сообщений я использую вне процесса SemanticLogging-svc.2.0.1406.1 Рабочий процесс следующий:
1. Я задаю идентификатор активности, который будет использоваться. EventSource.SetCurrentThreadActivityId.
2. Затем у меня есть некоторый код в одном потоке, но также может быть много кода в разных потоках. Пример (сообщения журнала из следующих задач регистрируются как разные идентификаторы действий):
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();
Любые идеи, как это решить? Может быть, я должен сделать специальные вещи, чтобы решить эту проблему?