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