Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3427|Відповідь: 2

[Джерело] У .NET 6 використовується новий таймер — PeriodicTimer

[Копіювати посилання]
Опубліковано 02.08.2023 19:12:40 | | |
Вимоги: Використовуйте 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Екземпляр дуже простий, єдиний параметр, який потрібно вказати — це значення періоду, код виглядає так:

Код фонового завдання з асинхронним таймінгом:

(Кінець)





Попередній:Помилки декодування Base64 існують у всіх версіях .NET
Наступний:.NET/C# універсальний T коваріантний вихід і інвертор в інтерфейсі
 Орендодавець| Опубліковано 02.08.2023 20:22:23 |
 Орендодавець| Опубліковано 12.11.2023 09:42:28 |
Сервіс зупиняється, і CancellationToken повідомляє про скасування завдання, що призводить до кидка:OperationCanceledExceptionНенормальні
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com