Почему 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);
 
        });
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5
Похожие ответы