Я хочу, чтобы в моем приложении был запущен таймер, отображающий секунды с точностью до 2 десятичных знаков, например, 2,31 секунды.Я использую System.Threading.Timer
для этого и устанавливаю объект Timer
для вызова функции refreshTimeBox()
каждые 10 миллисекунд (потому что я хочу, чтобы секунды составляли до 2 десятичных знаков).Но таймер отстает.И с течением времени оно все больше отстает.Я предполагаю, потому что refreshTimeBox()
занимает слишком много времени, чтобы завершить.Но я также попытался вместо этого вызывать refreshTimeBox()
каждые 100 миллисекунд.Таймер все еще отстает.Единственное отличие состоит в том, что в этом случае задержка становится заметной после более длительного времени, чем в случае, когда я использую 10 миллисекунд в качестве интервала.У меня есть следующий код для инициализации таймера:
timer = new Timer(refreshTimeBox, null, 0, 10);
Ниже приведен код для refreshTimeBox
:
public void refreshTimeBox(object param)
{
time += 0.01f;
Dispatcher.BeginInvoke(WriteTimeBox);
}
Ниже приведен код для WriteTimeBox
:
public void WriteTimeBox()
{
TimeBar.Text = time.ToString("0.00");
}
time
- это переменная, в которой хранится прошедшее время, а TimeBar
- это обновляемое текстовое поле.
Я хочу использовать как можно более точный таймер.Пожалуйста, помогите мне с этим.Спасибо.