Почему DateTime.Now должен быть менее точным, чем то, с чем может справиться большинство часов процессора?
Хорошие часы должны быть и точными и точными ; те разные. Как гласит старая шутка, остановленные часы точны два раза в день, а часы с минутной задержкой никогда не будут точными в любое время. Но часы с минутной задержкой всегда точны с точностью до минуты, тогда как у остановленных часов нет никакой полезной точности.
Почему DateTime должен быть точным с, скажем, микросекундами, когда он не может быть точным с микросекундами? У большинства людей нет источника официальных сигналов времени с точностью до микросекунды. Поэтому, давая шесть цифр после десятичного знака точность , последние пять из которых мусор будут лежа .
Помните, цель DateTime - представлять дату и время . Высокоточные тайминги вовсе не являются целью DateTime; как вы заметили, это и есть цель StopWatch. Цель DateTime - представлять дату и время для таких целей, как отображение текущего времени для пользователя, вычисление количества дней до следующего вторника и т. Д.
Короче говоря, "который час?" и "сколько времени это заняло?" это совершенно разные вопросы; не используйте инструмент, предназначенный для ответа на один вопрос, чтобы ответить на другой.
Спасибо за вопрос; это сделает хорошую статью в блоге! : -)