Zahteve: Uporabite ASP.NET Core 6 za ustvarjanje nove ozadne storitve, ki jo redno anketira za pridobivanje podatkov in jo uporabljaSystem.Timers.TimerTimer anketiranje, dodajanje dodatne Monitor kode za preprečevanje ponavljajočega se izvajanja hkrati, čeprav ustreza mojim poslovnim potrebam, ni dovolj elegantno, uporaba novega PeriodicTimer časovnika v .NET 6 pa lahko bolje ustreza mojim poslovnim potrebam.
Kot razvijalec ste morda že uporabljali časovnike v .NET-u. Danes je v .NET veliko vrst časovnikov, vsak pa služi drugačnemu namenu. Kot sledi:
- System.Threading.Timer
- System.Timers.Timer
- System.Windows.Forms.Timer
- System.Web.UI.Timer
- System.Windows.Threading.DispatcherTimer
V .NET 6 je bil predstavljen nov Timer - System.Threading.PeriodicTimer, največja razlika v primerjavi s prejšnjimi Timerji pa je, da je upravljanje dogodkov novega PeriodicTimerja mogoče uporabljati bolj priročno in asinhrono, kar odpravlja mehanizem uporabe povratnih klicev in zmanjšuje kompleksnost uporabe.
.NET 6 je uvedel nov tip časovnika, imenovan PeriodicTimer. Glavni namen PeriodicTimerja je izogibanje uporabi povratnih klicev.Izogibanje povratnim klicem nas rešuje težav z uhajanjem pomnilnika, ki se lahko pojavijo pri dolgoročnih operacijah, in lahko napišemo asinhrono kodo namesto sinhronizacije preko asinhrone, da uporabimo to metodo pri povratnih klicih. Morda imate opravka s trenutnim tipom časovnikaDruga težava so prekrivajoče se povratne klice。 Če ne pišete kode za scenarije prekrivanja povratnih klicev, lahko v svoji aplikaciji opazite nepričakovano vedenje.
ustvaritiPeriodicTimerInstanca je zelo preprosta, edini parameter, ki ga morate navesti, je vrednost obdobja, koda pa je naslednja:
Ozadje naloge z asinhronim časovnim usklajevanjem:
(Konec)
|