Уменьшение задержки между вызовами System.Timers.TImerC#

Место общения программистов C#
Ответить
Гость
 Уменьшение задержки между вызовами System.Timers.TImer

Сообщение Гость »


Я храню данные OHLC в режиме реального времени в файле CSV, для чего использую System.Timers.Timer для запуска каждые 60 секунд. Таймер примерно такой:

System.Timers.Timer timer = new System.Timers.Timer(); таймер.Интервал = 60000; таймер.Автосброс = правда; таймер.Включено = правда; timer.Elapsed += TimeElapsed; таймер.Старт(); Private void TimeElapsed(отправитель объекта, System.Timers.Timer.ElapsedEventArgs e) { // Выполняем здесь некоторую обработку } Я использовал регистратор Serilog для регистрации выходных данных каждый раз, когда срабатывает это событие, и заметил одну вещь: таймер добавляет небольшую задержку (несколько миллисекунд после каждого вызова), а затем, поскольку код выполняется в течение длительного времени время сейчас около 2 дней, которые накапливаются в миллисекундах и теперь составляют несколько секунд. Первая запись была 2023-09-20 21:17:00.363, а теперь, поскольку она вызывается каждую минуту, теперь вызов происходит каждую минуту в 2023-09-22 13:46:27.504. Обратите внимание на добавление 27 секунд с течением времени. Я не хочу этого. Итак, есть ли способ сопоставить таймер с часами Windows? Или вы можете предложить лучший подход к этому? Обратите внимание: я хочу, чтобы он сохранялся в CSV-файле только во время @HH:MM:00.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»