Вимоги: Використовуйте ASP.NET Core 6 для створення нового фонового сервісу для регулярного опитування з метою отримання даних і використання їхSystem.Timers.TimerОпитування таймерів, додавання додаткового коду Monitor, щоб запобігти повторному виконанню одночасно, хоча й відповідає потребам мого бізнесу, — це недостатньо елегантно, а використання нового таймера PeriodicTimer у .NET 6 краще відповідає потребам мого бізнесу.
Як розробник, ви, можливо, вже використовували таймери в .NET. Сьогодні в .NET існує багато типів таймерів, кожен з яких виконує свою функцію. Наступним чином:
- System.Threading.Таймер
- System.Timers.Timer
- System.Windows.Forms.Timer
- System.Web.UI.Timer
- System.Windows.Threading.DispatcherTimer
У .NET 6 було введено новий таймер — System.Threading.PeriodicTimer, і найбільша відмінність від попередніх таймерів полягає в тому, що обробка подій нового PeriodicTimer може використовуватися більш зручно, асинхронно, що усуває механізм зворотних викликів і знижує складність використання.
.NET 6 представив новий тип таймера під назвою PeriodicTimer. Головна мета PeriodicTimer — уникнути використання зворотних викликів.Уникнення зворотних дзвінків рятує нас від проблем із витоками пам'яті, які можуть виникати під час довгострокових операцій, і ми можемо писати асинхронний код замість синхронізації над асинхронним, щоб використовувати цей метод у зворотних викликах. Можливо, ви маєте справу з поточним типом таймераЩе одна проблема — це накладання зворотних зкликів。 Якщо ви не пишете код для сценаріїв повторного перекриття callback, ви можете побачити несподівану поведінку у своєму додатку.
творитиPeriodicTimerЕкземпляр дуже простий, єдиний параметр, який потрібно вказати — це значення періоду, код виглядає так:
Код фонового завдання з асинхронним таймінгом:
(Кінець)
|