public TimeSpan MeasureAction(Action theAction) { var stopwatch = new Stopwatch(); stopwatch.Start(); theAction(); stopwatch.Stop(); ActiveSession.AddLap(stopwatch.Elapsed); return(stopwatch.Elapsed); }
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); }
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); } }