Расширение TraceProcessor
TraceProcessor предлагает встроенную поддержку для многих типов данных трассировки, но если вы хотите анализировать другие источники данных (включая пользовательские источники), эти данные также доступны из трассировки при обработке.
Примечание.
Эта часть API находится на этапе предварительной версии и активно разрабатывается. В будущих выпусках она может измениться.
Например, вот простой способ получить список идентификаторов поставщиков в трассировке.
// 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.
Следующий шаг — узнать, как загружать символы для трассировок.
Windows developer