Поделиться через


Класс 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.