/// <summary> /// Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor. /// </summary> public Timing(Profiler profiler, Timing parent, string name) { this.Id = Guid.NewGuid(); Profiler = profiler; Profiler.Head = this; if (parent != null) // root will have no parent { parent.AddChild(this); } Name = name; _startTicks = profiler.ElapsedTicks; StartMilliseconds = profiler.GetRoundedMilliseconds(_startTicks); }
/// <summary> /// Add the parameter 'timing' to this Timing's Children collection. /// </summary> /// <remarks> /// Used outside this assembly for custom deserialization when creating an <see cref="IStorage"/> implementation. /// </remarks> public void AddChild(Timing timing) { if (Children == null) Children = new List<Timing>(); Children.Add(timing); timing.ParentTiming = this; }