2017-02-17 3 views
4

Was sind die Hauptunterschiede zwischen den Klassen EventSource und EventProvider?EventSource vs EventProvider

Ich verstehe beide Klassen als Ereignisanbieter für ETW. Wenn es bei den beiden keine Hauptunterschiede gibt, was sind die Vor- und Nachteile.

Ich verwende die EventSource-Klasse, weil ich mehr Beispiele/Dokumentation online gefunden habe, und es schien einfacher zu implementieren Kanalunterstützung (Schreiben auf die Standardkanäle in der Ereignisanzeige - Admin, Operational, Analytic und Debug) EventRegister-Klasse erstellt automatisch das Manifest (beschrieben here).

+0

gute Frage. sieht so aus, als wäre die Provider-Klasse der erste Versuch, ETW in .net (hinzugefügt in 3.5, während EventSource mit 4.5 hinzugefügt wurde) nutzbar zu machen. Aber es ist nur Spekulation – magicandre1981

Antwort

2

In .NET 3.5 war die Klasse EventProvider die einzige Option für die Ablaufverfolgung mit ETW. Wie die documentation angibt, müssen Sie eine Instrumentation Manifest-Datei für Ihre benutzerdefinierten Ereignisse erstellen, die die Datentypen in Ihren Nachrichten beschreibt. Dies ist keine so einfache Aufgabe und erfordert die Verwendung separater Tools, z. B. des Manifestgenerators (ecmangen.exe). Weitere Informationen finden Sie unter this post.

Die Klasse EventSource wurde in .NET 4.5 hinzugefügt und es wurde eine simpler approach zum Schreiben eigener Ereignisse mit ETW eingeführt. Anstatt diese Manifestdateien zu erstellen, werden sie automatisch für Sie erstellt, wodurch der Overhead eingespart wird.

Ich sehe keinen Grund, EventProvider angesichts der oben genannten zu verwenden. Wie Sie erwähnt haben, ist EventSource mehr dokumentiert und viel einfacher zu bedienen.

Verwandte Themen