Freigeben über


TraceProcessor erweitern

Verschiedene Arten von Ablaufverfolgungsdaten verfügen über integrierte Unterstützung im TraceProcessor-, aber wenn Sie andere Anbieter haben, die Sie analysieren möchten (einschließlich Ihrer eigenen benutzerdefinierten Anbieter), sind diese Daten auch während der Verarbeitung live aus der Ablaufverfolgung verfügbar.

Hinweis

Dieser Teil der API befindet sich in einer Vorschauversion und unter aktiver Entwicklung. Es kann sich in zukünftigen Versionen ändern.

Hier ist beispielsweise eine einfache Möglichkeit, die Liste der Anbieter-IDs in einem Trace abzurufen.

// Open a trace with TraceProcessor.Create() and call Run...

static void Run(ITraceProcessor trace)
{
    HashSet<Guid> providerIds = new HashSet<Guid>();
    trace.Use((e) => providerIds.Add(e.ProviderId));
    trace.Process();

    foreach (Guid providerId in providerIds)
    {
        Console.WriteLine(providerId);
    }
}

Das folgende Beispiel zeigt eine vereinfachte benutzerdefinierte Datenquelle.

// Open a trace with TraceProcessor.Create() and call Run...

static void Run(ITraceProcessor trace)
{
    CustomDataSource customDataSource = new CustomDataSource();
    trace.Use(customDataSource);

    trace.Process();

    Console.WriteLine(customDataSource.Count);
}

class CustomDataSource : IFilteredEventConsumer
{
    public IReadOnlyList<Guid> ProviderIds { get; } = new Guid[] { new Guid("your provider ID") };

    public int Count { get; private set; }

    public void Process(EventContext eventContext)
    {
        ++Count;
    }
}

Nächste Schritte

In diesem Lernprogramm haben Sie gelernt, wie Sie TraceProcessor erweitern.

Im nächsten Schritt erfahren Sie, wie Sie Symbole für Traces laden.