Как мы все знаем, секундомер может иметь проблемы в многопоточном асинхронном приложении, которое будет работать на всех ядрах.
На многопроцессорном компьютере неважно, на каком процессоре работает поток. Однако из-за ошибок в BIOS или аппаратной абстракции (HAL) вы можете получать разные результаты синхронизации на разных процессорах. Чтобы указать сродство процессора к потоку, используйте метод ProcessThread.ProcessorAffinity.
Есть ли у меня какой-либо способ получить некоторые надежные метки/отметки времени, такие как значения, которые имеют высокое разрешение/точность, также согласованы между ядрами процессора?
Если невозможно сделать многожильный секундомер (QueryPerformanceCounter) безопасным, то какой лучший лучший способ получить хорошую временную метку по всем ядрам? DateTime.UtcNow.Ticks или Environment.TickCount? Любые другие счетчики?
Мне нужно лучшее разрешение, чем может предоставить DateTime.UtcNow.Ticks. (10-15ms)