Stopwatch
измеряет прошедшее время между Start
и Stop
путем подсчета тактов в базовом механизме таймера. Сказав это означает, что если вы используете F10
для перехода по операторам, то также Stopwatch
работает в фоновом режиме.
Давайте проведем тест, чтобы сравнить оба времени с тестом ниже, чтобы лучше понять. Предположим, что breakpoint
находится на 1-й строке и в последний раз. Нажмите F5
, когда выполнение приостановлено на 1-й точке останова, и сравните время, показанное отладчиком и секундомером. Те были бы сопоставимы.
Stopwatch stopwatch = Stopwatch.StartNew(); //Breakpoint
Print(); //Have a Thread.Sleep(1000);
stopwatch.Stop();
int count = 10; //Breakpoint
В моем случае Stopwatch
показал истекшее время как 1002ms
, а отладчик показал <1005ms
.
[
Обратите внимание, что время будет значительно отличаются, если вы переступаете через каждую строку (по одной за раз). Секундомер покажет значительно большее время, поскольку прошедшее время будет больше.