Почему Timer в одном приложении работает медленнее, чем в другом? - C#
Формулировка задачи:
Привет. Есть сервер и клиент, на сервере работает таймер, каждый 50 миллисекунд он увеличивает значение переменной на 1. Когда запускается клиент, то он запрашивает текущее значение у счетчика на сервере, далее присваивает это значение своему счетчику, и запускает таймер, который раз в 50 миллисекунд увеличивает значение счетчика на 1. Так почему, при нескольких минутах работы сервера и клиента, значение счетчика на клиенте обгоняет значение счетчика на сервере?
Один человек сказал мне, что работу таймеров нужно завязывать на тиках. Но я не могу понять нескольких вещей, ведь тики являются чем-то таким, что определяет точность работы всех других вещей, будь-то Thread.Sleep() или работа таймера, а сами тики зависят же от скорости процессора? или нет? Тогда как на одном компе, два таймера могут работать неодинаково?
Решение задачи: «Почему Timer в одном приложении работает медленнее, чем в другом?»
textual
Листинг программы
private Timer timer; timer = new Timer(new TimerCallback(TimerWork)); void TimerWork(object source) { Communicator.timeStamp++; } void SetTimeStamp(IServerData data) { queue.Enqueue(() => { GetTimeStampResult result = (GetTimeStampResult) data; Communicator.timeStamp = result.TimeStamp; timer.Change(0, 50); }); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д