private void ProcessStartEvent(TraceEvent data) { var parentID = getParentID(data) ?? NONE; bool watchThis = (trackedProcessIDs.Contains(parentID)) || !filters.Any() || filters.Any(filter => data.ProcessName.Contains(filter, StringComparison.OrdinalIgnoreCase)); if (!watchThis) { return; } trackedProcessIDs.Add(data.ProcessID); var entry = new BeginEntry(NONE, NONE, data.TimeStampRelativeMSec * 1000.0, data.ProcessName); entry.ThreadID = processes.AddChild(data.ProcessID, parentID); entry.Args = buildArgs(data).ToList(); writer.AddEntry(entry); }