У меня есть код, запущенный в цикле, и он сохраняет состояние на основе текущего времени. Иногда это может быть всего лишь в миллисекундах, но по какой-то причине кажется, что DateTime.Now всегда будет возвращать значения не менее 10 мс друг от друга, даже если это будет только через 2 или 3 мс позже. Это представляет серьезную проблему, так как состояние, которое я сохраняю, зависит от времени его сохранения (например, что-то записывает)
Мой тестовый код, который возвращает каждое значение на расстоянии 10 мс:
public static void Main()
{
var dt1 = DateTime.Now;
System.Threading.Thread.Sleep(2);
var dt2 = DateTime.Now;
// On my machine the values will be at least 10 ms apart
Console.WriteLine("First: {0}, Second: {1}", dt1.Millisecond, dt2.Millisecond);
}
Есть ли еще одно решение о том, как получить точное текущее время до миллисекунды?
Кто-то предложил посмотреть класс Секундомера. Хотя класс секундомера очень точен, он не говорит мне о текущем времени, что мне нужно, чтобы сохранить состояние моей программы.