Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 3427|Răspunde: 2

[Sursă] Este folosit un nou cronometru în .NET 6, PeriodicTimer,

[Copiază linkul]
Postat pe 02.08.2023 19:12:40 | | |
Cerințe: Folosiți ASP.NET Core 6 pentru a crea un nou serviciu de background care să songheze regulat pentru a obține date și să îl folosițiSystem.Timers.TimerInterogarea timerului, adăugarea de cod suplimentar Monitor pentru a preveni execuția repetată în același timp, deși răspunde nevoilor mele de business, nu este suficient de elegantă, iar folosirea noului timer PeriodicTimer în .NET 6 poate răspunde mai bine nevoilor mele de business.

Ca dezvoltator, este posibil să fi folosit temporizatoare în .NET înainte. Există multe tipuri de temporizatoare în .NET astăzi, fiecare având un scop diferit. Așa cum urmează:

  • System.Threading.Timer
  • System.Timers.Timer
  • System.Windows.Forms.Timer
  • System.Web.UI.Timer
  • System.Windows.Threading.DispatcherTimer


Un nou Timer a fost introdus în .NET 6 - System.Threading.PeriodicTimer, iar cea mai mare diferență față de Timerele anterioare este că gestionarea evenimentelor a noului PeriodicTimer poate fi folosită într-un mod asincron mai convenabil, eliminând mecanismul de utilizare a callback-urilor și reducând complexitatea utilizării.

.NET 6 a introdus un nou tip de cronometru numit PeriodicTimer. Scopul principal al PeriodicTimer este de a evita utilizarea callback-urilor.Evitarea callback-urilor ne scutește de scurgerile de memorie care pot apărea în operațiuni pe termen lung, și putem scrie cod async în loc de sync over async pentru a folosi acea metodă în callback-uri. S-ar putea să ai de-a face cu tipul actual de cronometruO altă problemă sunt apelurile care se suprapun。 Dacă nu scrii cod pentru scenarii de suprapunere cu callback, s-ar putea să observi comportamente neașteptate în aplicația ta.

creaTemporizator periodicInstanța este foarte simplă, singurul parametru pe care trebuie să-l furnizezi este valoarea perioadei, codul este următorul:

Cod de sarcină de fundal pentru sincronizarea asincronă:

(Sfârșit)





Precedent:Erorile de decodare Base64 există în toate versiunile de .NET
Următor:.NET/C# ieșire generică T covariantă și invertor în interfață
 Proprietarul| Postat pe 02.08.2023 20:22:23 |
 Proprietarul| Postat pe 12.11.2023 09:42:28 |
Serviciul se oprește, iar CancellationToken notifică anularea sarcinii, rezultând aruncarea:OperațiuneExcepțieAnulatăanormal
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com