Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3427|Odpoveď: 2

[Zdroj] Používa sa nový časovač v .NET 6, PeriodicTimer,

[Kopírovať odkaz]
Zverejnené 2. 8. 2023 19:12:40 | | |
Požiadavky: Použiť ASP.NET Core 6 na vytvorenie novej služby na pozadí na pravidelné dotazovanie na získavanie dát a používať juSystem.Timers.TimerTimer pollling, pridávanie ďalšieho Monitor kódu na zabránenie opakovanému vykonávaniu súčasne, hoci spĺňa moje obchodné potreby, nie je dostatočne elegantné a použitie nového PeriodicTimer timera v .NET 6 môže lepšie vyhovieť mojim podnikateľským potrebám.

Ako vývojár ste možno už niekedy používali časovače v .NET. Dnes existuje v .NET mnoho typov časovačov, z ktorých každý slúži inému účelu. Takto:

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


V .NET 6 bol predstavený nový Timer – System.Threading.PeriodicTimer a najväčším rozdielom oproti predchádzajúcim Timerom je, že spracovanie udalostí nového PeriodicTimeru je možné používať pohodlnejšie asynchrónne, čím sa eliminuje mechanizmus spätných volaní a znižuje sa zložitosť použitia.

.NET 6 zaviedol nový typ časovača nazývaný PeriodicTimer. Hlavným účelom PeriodicTimer je vyhnúť sa používaniu callbackov.Vyhýbanie sa spätným volaniam nás šetrí pred únikmi pamäte, ktoré môžu nastať pri dlhodobých operáciách, a môžeme napísať asynchrónny kód namiesto sync over async, aby sme túto metódu použili pri callbackoch. Možno máte do činenia s aktuálnym typom časovačaĎalším problémom sú prekrývajúce sa callbacky。 Ak nepíšete kód pre scenáre prekrytia spätného volania, môžete vo svojej aplikácii vidieť neočakávané správanie.

vytvoriťPeriodicTimerInštancia je veľmi jednoduchá, jediný parameter, ktorý musíte zadávať, je hodnota periódy, kód je nasledovný:

Kód úlohy na pozadí asynchrónneho časovania:

(Koniec)





Predchádzajúci:Chyby dekódovania Base64 existujú vo všetkých verziách .NET
Budúci:.NET/C# generický T kovariantný výstup a invertor v rozhraní
 Prenajímateľ| Zverejnené 2. 8. 2023 20:22:23 |
 Prenajímateľ| Zverejnené 12. 11. 2023 9:42:28 |
Služba sa zastaví a CancellationToken oznámi zrušenie úlohy, čo vedie k hodeniu:OperationCanceledExceptionabnormálny
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com