public long StopStopWatch(ContainerWatch cw)
 {
     lock (thisLock) {
         var  result       = cw.StopStopWatch();
         long timeFonction = result.timeFonction;
         //if (timeFonction >= RecordMaxTime) {
         //}
         var exist = listLogGroupCallPerformanceItem.Where(c => c.sender == result.sender).FirstOrDefault();
         if (exist == null)
         {
             exist = new LogGroupCallPerformanceItem()
             {
                 sender = result.sender, CptCall = 0, lastCall = DateTime.MaxValue
             };
             listLogGroupCallPerformanceItem.Add(exist);
         }
         exist.CptCall++;
         DateTime now = DateTime.Now;
         if (exist.lastCall < now)
         {
             var delay = now - exist.lastCall;
             exist.AverageDelaiCall = (long)delay.TotalMilliseconds;
         }
         exist.lastCall = now;
         if (result.timeFonction >= exist.MaxTimeFonction)
         {
             exist.MaxTimeFonction = result.timeFonction;
             exist.lastMaxLogCallPerformanceItem = result;
             exist.WarningTimeMax = exist.MaxTimeFonction > RecordMaxTime;
         }
         exist.AverageTimeFonction += result.timeFonction;
         exist.AverageTimeFonction  = exist.AverageTimeFonction / exist.CptCall;
         //exist.AverageDelaiCall
         //exist.AverageTimeFonction
         return(timeFonction);
     }
 }
        public ContainerWatch StartStopWatch(HttpRequest httpRequest)
        {
            ContainerWatch cw = new ContainerWatch(httpRequest);

            return(cw);
        }