Пример #1
0
        public TimeSpan MeasureAction(Action theAction)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            theAction();
            stopwatch.Stop();

            ActiveSession.AddLap(stopwatch.Elapsed);

            return(stopwatch.Elapsed);
        }
Пример #2
0
        public async Task <TimeSpan> MeasureActionAsync(Func <Task> theAction)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            await theAction();

            stopwatch.Stop();

            ActiveSession.AddLap(stopwatch.Elapsed);

            return(stopwatch.Elapsed);
        }
Пример #3
0
        public TimeSpan Stop()
        {
            lock (_lockObject)
            {
                if (!IsRunning)
                {
                    throw new InvalidOperationException("The chrono is not currenting running so it cannot be stopped.");
                }

                _stopwatch.Stop();
                ActiveSession.AddLap(_stopwatch.Elapsed);

                return(_stopwatch.Elapsed);
            }
        }