Reikalavimai: Naudokite ASP.NET Core 6, kad sukurtumėte naują foninę paslaugą, kad galėtumėte reguliariai apklausti duomenis ir ją naudotiSistema.Laikmačiai.LaikmatisLaikmačio apklausa, pridedant papildomą monitoriaus kodą, kad būtų išvengta pakartotinio vykdymo tuo pačiu metu, nors ji atitinka mano verslo poreikius, nėra pakankamai elegantiška, ir naudojant naują PeriodicTimer laikmatis .NET 6 gali geriau patenkinti mano verslo poreikius.
Kaip kūrėjas, galbūt anksčiau naudojote laikmačius .NET. Šiandien .NET yra daugybė laikmačių tipų, kurių kiekvienas tarnauja skirtingam tikslui. Taip:
- System.Threading.Timer
- Sistema.Laikmačiai.Laikmatis
- Sistema.Windows.Forms.Timer
- Sistema.Web.UI.Laikmatis
- Sistema.Windows.Threading.DispatcherTimer
Naujas laikmatis buvo pristatytas .NET 6 - System.Threading.PeriodicTimer, o didžiausias skirtumas, palyginti su ankstesniais laikmačiais, yra tas, kad naujojo PeriodicTimer įvykių tvarkymas gali būti naudojamas patogesniu asinchroniniu būdu, pašalinant atgalinių skambučių naudojimo mechanizmą ir sumažinant naudojimo sudėtingumą.
.NET 6 pristatė naują laikmačio tipą, vadinamą PeriodicTimer. Pagrindinis "PeriodicTimer" tikslas yra išvengti atgalinių skambučių.Vengdami atgalinių skambučių, išvengiame atminties nutekėjimo, kuris gali atsirasti atliekant ilgalaikes operacijas, ir galime parašyti asinchroninį kodą, o ne sinchronizuoti per asinchroninį, kad galėtume naudoti šį metodą atgaliniuose skambučiuose. Gali būti, kad susiduriate su dabartiniu laikmačio tipuKita problema yra persidengiantys atgaliniai skambučiai。 Jei nerašysite kodo atgalinio skambinimo persidengimo scenarijams, programoje galite pastebėti netikėtą veikimą.
kurtiPeriodinis laikmatisEgzempliorius yra labai paprastas, vienintelis parametras, kurį reikia pateikti, yra laikotarpio reikšmė, kodas yra toks:
Asinchroninio laiko fono užduoties kodas:
(Pabaiga)
|