Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Многие типы данных трассировки имеют встроенную поддержку в 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