Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3427|Atsakyti: 2

[Šaltinis] Naudojamas naujas .NET 6 laikmatis "PeriodicTimer"

[Kopijuoti nuorodą]
Paskelbta 2023-08-02 19:12:40 | | |
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)





Ankstesnis:Base64 dekodavimo klaidos yra visose .NET versijose
Kitą:.NET/C# bendras T kovariantas išvestis ir keitiklis sąsajoje
 Savininkas| Paskelbta 2023-08-02 20:22:23 |
 Savininkas| Paskelbta 2023-11-12 09:42:28 |
Paslauga sustabdoma, o CancellationToken praneša apie užduoties atšaukimą, todėl išmetama:OperacijaAtšauktaIšimtisNenormalus
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com