Является ли Stopwatch.ElapsedTicks потокобезопасным?

Если у меня есть общий экземпляр System.Diagnostics.Stopwatch , могут ли несколько потоков вызывать shared.ElapsedTicks в безопасным способом и получить точные результаты?

Есть ли разница с точки зрения безопасности потоков / точности между использованием общего экземпляра секундомера таким способом и статическим методом GetTimeStamp () ?

Я измеряю интервалы около 180 мс и обнаружил, что использование общего экземпляра дает мне больший разброс результатов, включая значительное число, которое короче, чем я ожидал.

Машина имеет несколько процессоров (2 * Intel X5550, чего он стоит)

8
задан Rob 12 July 2011 в 13:00
поделиться

1 ответ

Для добавления к другим ответам здесь, в то время как это свойство является theadsafe, пока Вы не звоните Start(), Reset(), или Stop() методы, важно отметить, что, если Вы используете галочки для арифметики и затем передаете значение в TimeSpan конструктор, например, один stopWatch.ElapsedTicks, Галочка не эквивалентна TimeSpan Галочки, как описано здесь. Для получения эквивалентных галочек Вы хотели бы использовать stopWatch.Elapsed.Ticks.

оставил бы это как комментарий к другому ответу, но у меня нет достаточной репутации: /

0
ответ дан 5 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: