Ejemplo n.º 1
0
        /// <summary>
        /// Stops timing an event. Logs an exception if the event wasn't started.
        /// </summary>
        /// <param name="metric"></param>
        /// <returns></returns>
        public Timing StopEvent(Metric metric)
        {
            Timing timing;

            lock (metricsLock)
            {
                if (!inFlightTimings.TryGetValue(metric, out timing))
                {
                    LogError_Locked(metric, "Trying to stop event that has not been started");
                    return(new Timing());
                }
                inFlightTimings.Remove(metric);
                timing.Stop(CurrentTime);

                if (IsEnabled)
                {
                    List <IMetricsTiming> list;
                    if (!Timings.TryGetValue(metric, out list))
                    {
                        list            = new List <IMetricsTiming>();
                        Timings[metric] = list;
                    }
                    list.Add(timing);
                }
            }
            return(timing);
        }
Ejemplo n.º 2
0
 public Timing StopEvent(Metric metric)
 {
     lock (metricsLock)
     {
         if (!inFlightTimings.TryGetValue(metric, out Timing value))
         {
             LogError_Locked(metric, "Trying to stop event that has not been started");
             return(new Timing());
         }
         inFlightTimings.Remove(metric);
         value.Stop(CurrentTime);
         if (!IsEnabled)
         {
             return(value);
         }
         if (!Timings.TryGetValue(metric, out List <IMetricsTiming> value2))
         {
             value2          = new List <IMetricsTiming>();
             Timings[metric] = value2;
         }
         value2.Add(value);
         return(value);
     }
 }