Точно измерить прошедшее время настенных часов в .NET - PullRequest
5 голосов
/ 24 сентября 2010

Какой самый удобный способ точного измерения истекшего времени настенных часов в .NET?Я ищу что-то с точностью до микросекунды, если это возможно (10 ^ -6 секунд).

Ответы [ 3 ]

7 голосов
/ 24 сентября 2010

System.Diagnostics.Stopwatch - ваш лучший выбор. Однако точная точность будет зависеть от аппаратного обеспечения используемого вами компьютера, т. Е. От того, доступен ли счетчик производительности с высоким разрешением. (Вы можете проверить это с помощью поля IsHighResolution.)

Пример использования:

Stopwatch sw = Stopwatch.StartNew();
// Do stuff here
sw.Stop();
TimeSpan time = sw.Elapsed;

Обратите внимание, что если вы используете свойство ElapsedTicks, оно измеряется в тиках timer , что отличается от тиков, используемых в DateTime и TimeSpan. Это поразило меня раньше - вот почему я всегда использую свойство ElapsedMilliseconds или Elapsed.

0 голосов
/ 31 марта 2013

Вот класс, который обеспечивает ожидание в этом масштабе, так как в конце я предполагаю, что это то, что вам нужно сделать. StopWatch @ CPU time, возможно, получит APC, и вы пропустите время окончания.

См. https://stackoverflow.com/questions/15725711/obtaining-microsecond-precision-using-net-without-platform-invoke

для лучшего способа ИМХО

Дайте мне знать, если найдете другое!

0 голосов
/ 24 сентября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...