Класс System.Diagnostics.Tracing.EventWrittenEventArgs
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Класс EventWrittenEventArgs предоставляет данные для обратного OnEventWritten вызова.
Всякий раз, когда событие отправляется в EventListenerобъект, EventListener.OnEventWritten вызывается метод обратного вызова. Передается EventWrittenEventArgs
экземпляр, содержащий сведения, связанные с событием. Все значения EventWrittenEventArgs
свойств класса допустимы только во время обратного вызова.
В следующих разделах содержатся дополнительные сведения об отдельных EventWrittenEventArgs
свойствах.
Свойство ActivityId
При использовании System.Activities.Activity и производных классах потоки можно пометить как связанные с ними действия. Свойство ActivityId
возвращает идентификатор действия потока, который зарегистрировал событие. Обратите внимание, что потоки не должны иметь действие, в этом случае это свойство возвращается Guid.Empty.
Свойства OSThreadId и TimeStamp
Начиная с .NET Core 2.2 объекты могут подписываться на события собственной среды выполнения (например, EventListener события GC, JIT и threadpool) в дополнение к событиям, создаваемым объектами EventSource . В предыдущих версиях .NET Core и всех версий платформа .NET Framework идентификатор потока и метка времени можно собирать из среды, так как они отправляются синхронно в том же потоке, который их выдавал. Однако не все события собственной среды выполнения могут быть синхронно отправлены. Некоторые события, такие как события GC, создаются при приостановке выполнения управляемого потока. Эти события буфериируются в машинном коде и отправляются потоком диспетчера после повторного выполнения управляемого кода. Так как эти события буферичены, среда не может использоваться для надежного получения идентификатора потока и метки времени. Из-за этого, начиная с .NET Core 2.2, идентификатор потока и метки времени доступны как члены EventWrittenEventArgs
класса.
Свойство RelatedActivityId
Связанное действие — это действие, которое сильно связано с текущим. Как правило, это либо действие, которое вызвало текущее действие (события с Start
опкодом обычно делает это), либо действие, созданное текущим (события с Send
опкодом обычно делают это). При использовании RelatedActivityID
этот метод явно передается методом, выполняя ведение журнала. Многие события не передают значение RelatedActivityId
, в этом случае это свойство возвращается Guid.Empty.