共用方式為


擴充 TraceProcessor

許多種類的追蹤數據在 TraceProcessor中都有內建支援,但如果您有其他想要分析的提供者(包括您自己的自定義提供者),則數據也會在處理時從追蹤即時取得。

備註

API 的這個部分處於預覽狀態,且處於作用中開發階段。 未來版本可能會變更。

例如,這是一個取得追蹤中提供者ID列表的簡單方法。

// 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);
    }
}

下列範例顯示簡化的自定義數據源。

// 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;
    }
}

後續步驟

在本教學課程中,您已瞭解如何擴充 TraceProcessor。

下一個步驟是瞭解如何 追蹤 載入符號。