Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3427|Antwort: 2

[Quelle] Ein neuer Timer in .NET 6, PeriodicTimer, wird verwendet

[Link kopieren]
Veröffentlicht am 02.08.2023 19:12:40 | | |
Anforderungen: Verwenden Sie ASP.NET Core 6, um einen neuen Hintergrunddienst zu erstellen, den regelmäßig abgefragt wird, um Daten zu erhalten, und diese zu nutzenSystem.Timers.TimerTimer-Abfragen, das Hinzufügen zusätzlicher Monitor-Codes, um wiederholte Ausführung gleichzeitig zu verhindern, erfüllt zwar meine geschäftlichen Bedürfnisse, ist aber nicht elegant genug, und die Nutzung des neuen PeriodicTimer-Timers in .NET 6 kann meine Geschäftsbedürfnisse besser erfüllen.

Als Entwickler hast du vielleicht schon mal Timer in .NET verwendet. Es gibt heute viele Arten von Timern in .NET, die jeweils einen anderen Zweck erfüllen. Folgendermaßen:

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


Ein neuer Timer wurde in .NET 6 eingeführt – System.Threading.PeriodicTimer, und der größte Unterschied zu den vorherigen Timern besteht darin, dass die Ereignisbehandlung des neuen PeriodicTimer auf eine bequemere asynchrone Weise genutzt werden kann, wodurch der Mechanismus der Rückrufe entfällt und die Komplexität der Nutzung reduziert wird.

.NET 6 führte einen neuen Timer-Typ namens PeriodicTimer ein. Der Hauptzweck von PeriodicTimer ist es, Rückrufe zu vermeiden.Das Vermeiden von Rückrufen erspart uns vor Speicherlecks, die bei Langzeitoperationen auftreten können, und wir können asynchronen Code statt Sync over Async schreiben, um diese Methode bei Callbacks zu verwenden. Vielleicht hast du es mit dem aktuellen Timer-Typ zu tunEin weiteres Problem sind die sich überschneidenden Rückrufe。 Wenn Sie keinen Code für Callback-Überlappungsszenarien schreiben, können Sie unerwartetes Verhalten in Ihrer Anwendung beobachten.

schaffenPeriodicTimerDie Instanz ist sehr einfach, der einzige Parameter, den Sie angeben müssen, ist der Periodenwert, der Code ist wie folgt:

Asynchroner Timing-Hintergrund-Aufgabencode:

(Ende)





Vorhergehend:Base64-Dekodierungsfehler existieren in allen Versionen von .NET
Nächster:.NET/C# generischer T-kovarianter Ausgang und Wechselrichter in der Schnittstelle
 Vermieter| Veröffentlicht am 02.08.2023 20:22:23 |
 Vermieter| Veröffentlicht am 12.11.2023 09:42:28 |
Der Dienst stoppt, und der CancellationToken benachrichtigt die Absage der Aufgabe, was zum Werfen führt:OperationCancellededExceptionabnorm
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com