本文提供此 API 參考文件的補充備註。
類別 EventWrittenEventArgs 為 OnEventWritten 回調提供數據。
每當事件傳送至 EventListener 時,回呼方法便會被 EventListener.OnEventWritten 叫用。 它會傳遞 EventWrittenEventArgs 實例,其中包含與事件相關聯的資訊。 類別的所有屬性值 EventWrittenEventArgs 只有在回呼期間才有效。
下列各節包含個別 EventWrittenEventArgs 屬性的其他資訊。
ActivityId 屬性
使用 System.Activities.Activity 及其衍生類別時,線程可以標示為具有與其相關聯的活動。 屬性 ActivityId 會傳回記錄事件之線程的活動標識碼。 請注意,線程不一定需要有活動,此情況下,這個屬性會返回Guid.Empty。
OSThreadId 和 TimeStamp 屬性
從 .NET Core 2.2 開始,物件除了對象發出的EventListener事件之外,EventSource還可以訂閱原生運行時間事件(例如 GC、JIT 和線程集區事件)。 在舊版 .NET Core 和 .NET Framework 的所有版本中,線程標識碼和時間戳可以從環境收集,因為它們會以同步方式分派在發出它們的相同線程上。 但是,並非所有原生執行階段事件都可以同步分派。 某些事件,例如 GC 事件,會在受控線程執行暫停時發出。 這些事件會以原生程式代碼進行緩衝處理,一旦 Managed 程式代碼可以再次執行,就會由發送器線程分派。 由於這些事件已緩衝處理,因此環境無法可靠地擷取線程標識碼和時間戳。 因此,從 .NET Core 2.2 開始,執行緒 ID 和時間戳資訊可作為 EventWrittenEventArgs 類別的成員。
RelatedActivityId 屬性
相關活動是與目前活動有強烈關聯的活動。 一般而言,它可能是造成目前活動的活動( Start 具有 opcode 的事件通常會執行此動作),或是目前活動所建立的活動( Send 具有 opcode 的事件通常會執行此動作)。 使用時, RelatedActivityID 會由執行記錄的 方法明確傳遞 。 許多事件不會傳遞 RelatedActivityId,在此情況下,這個屬性會傳 Guid.Empty回 。