2016-11-05 2 views
-1

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

protected void Timer_Tick(object sender, EventArgs e) 
{ 
    DateTime CurrentTime = DateTime.Now; 

    TimeSpan ElapsedTime = m_PrevCurrentTime.HasValue ? CurrentTime - m_PrevCurrentTime.Value : TimeSpan.Zero; 

    Time += ElapsedTime; 

    // Update clock. 
    : 

    m_PrevCurrentTime = CurrentTime; 
} 

ElapsedTime, однако, точно не соответствует 1 секунде, поэтому часы работают не точно. Есть ли лучший подход?

+1

Посмотрите на соответствующие ссылки на боковой панели. – LarsTech

ответ

0

Вы никогда не сможете получить точное значение часов, по крайней мере, в Windows. Обычное разрешение около 15 мс. Если вы читаете значение, вы получаете одно и то же значение в течение 15 мс в строке.

Вы можете получить дополнительную информацию в this вопрос.

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

Смежные вопросы