Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3427|Antwoord: 2

[Bron] Er wordt een nieuwe timer in .NET 6 gebruikt, PeriodicTimer,

[Link kopiëren]
Geplaatst op 02-08-2023 19:12:40 | | |
Vereisten: Gebruik ASP.NET Core 6 om een nieuwe achtergronddienst te creëren die regelmatig pollen om data te verkrijgen en te gebruiken.System.Timers.TimerTimer polling, het toevoegen van extra Monitor-code om herhaalde uitvoering tegelijkertijd te voorkomen, hoewel het aan mijn zakelijke behoeften voldoet, is niet elegant genoeg, en het gebruik van de nieuwe PeriodicTimer-timer in .NET 6 kan beter aan mijn zakelijke behoeften voldoen.

Als ontwikkelaar heb je misschien eerder timers in .NET gebruikt. Er zijn tegenwoordig veel soorten timers in .NET, elk met een ander doel. Als volgt:

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


Een nieuwe Timer werd geïntroduceerd in .NET 6 - System.Threading.PeriodicTimer, en het grootste verschil ten opzichte van de eerdere Timers is dat de eventafhandeling van de nieuwe PeriodicTimer op een handigere asynchrone manier kan worden gebruikt, waardoor het mechanisme van callbacks wordt geëlimineerd en de complexiteit van het gebruik wordt verminderd.

.NET 6 introduceerde een nieuw timertype genaamd PeriodicTimer. Het belangrijkste doel van PeriodicTimer is om het gebruik van callbacks te vermijden.Het vermijden van callbacks bespaart ons het omgaan met geheugenlekken die kunnen optreden bij langdurige operaties, en we kunnen async-code schrijven in plaats van sync over async om die methode in callbacks te gebruiken. Je hebt misschien te maken met het huidige type timerEen ander probleem zijn de overlappende callbacks。 Als je geen code schrijft voor callback-overlap-scenario's, kun je onverwacht gedrag in je applicatie zien.

scheppenPeriodicTimerDe instantie is heel eenvoudig, de enige parameter die je hoeft te geven is de periodewaarde, de code is als volgt:

Asynchrone timing achtergrondtaakcode:

(Einde)





Vorig:Base64-decodeerfouten bestaan in alle versies van .NET
Volgend:.NET/C# generieke T covariante uitgang en inverter in interface
 Huisbaas| Geplaatst op 02-08-2023 20:22:23 |
 Huisbaas| Geplaatst op 12-11-2023 09:42:28 |
De dienst stopt, en de CancellationToken meldt de annulering van de taak, wat resulteert in het gooien:OperationCancelledExceptionabnormaal
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com