QueryPerformanceCounter()
и Stopwatch.GetTimestamp()
оба возвращают счетчик тиков одного из процессоров.Я хотел бы использовать возвращенное 64-разрядное целочисленное значение в качестве уникального идентификатора, и мне интересно, возможно ли, чтобы эти функции возвращали одно и то же значение, когда они вызывались несколько раз в процессе.
Мой процесс будетзапускать не более нескольких часов одновременно, и эти уникальные идентификаторы используются только временно - например, они не сохраняются в базе данных.Вышеуказанные функции будут вызываться несколько раз, но с другими вызовами функций между ними.
В документации говорится, что, возможно, материнская плата не поддерживает высокопроизводительные таймеры, но все, с чем я работал, имело эту поддержку.Мой код работал бы только на 32-битном или 64-битном серверном оборудовании, где я считаю, что высокопроизводительные таймеры всегда поддерживаются (хотя я не уверен).
Я мог бы написать небольшую тестовую программу дляпротестируйте его, но этот тест будет действителен только на моем собственном компьютере, поэтому я ищу более точный ответ, если таковой имеется.
Редактировать : я знаю, что эти функции не предназначен для генерации уникальных идентификаторов, но пока они генерируют постоянно растущие значения, это нормально.Я задаю этот вопрос не только по техническим причинам, но и из любопытства.