Exigences : Utilisez ASP.NET Core 6 pour créer un nouveau service de vérification des antécédents à interroger régulièrement afin d’obtenir des données, et utilisez-leSystem.Timers.TimerLe polling du minuteur, l’ajout de code supplémentaire pour surveiller pour éviter l’exécution répétée en même temps, bien qu’il réponde aux besoins de mon entreprise, n’est pas assez élégant, et utiliser le nouveau minuteur PeriodicTimer en .NET 6 peut mieux répondre à mes besoins métier.
En tant que développeur, vous avez peut-être déjà utilisé des minuteurs dans .NET auparavant. Il existe aujourd’hui de nombreux types de minuteurs dans .NET, chacun ayant une fonction différente. Comme suit:
- System.Threading.Timer
- System.Timers.Timer
- System.Windows.Forms.Timer
- System.Web.UI.Timer
- System.Windows.Threading.DispatcherTimer
Un nouveau minuteur a été introduit dans .NET 6 - System.Threading.PeriodicTimer, et la plus grande différence par rapport aux Timers précédents est que la gestion des événements du nouveau PeriodicTimer peut être utilisée de manière plus asynchrone pratique, éliminant ainsi le mécanisme d’utilisation des rappels et réduisant la complexité de l’utilisation.
.NET 6 a introduit un nouveau type de minuterie appelé PeriodicTimer. Le principal objectif de PeriodicTimer est d’éviter d’utiliser des callbacks.Éviter les rappels nous évite de gérer les fuites de mémoire pouvant survenir lors d’opérations à long terme, et nous pouvons écrire du code asynchrone au lieu de synchroniser sur async pour utiliser cette méthode dans les rappels. Vous avez peut-être affaire au type de minuterie actuelUn autre problème concerne le chevauchement des rappels。 Si vous n’écrivez pas de code pour des scénarios de recouvrement de rappel, vous pouvez constater des comportements inattendus dans votre application.
créerMinuteur périodiqueL’instance est très simple, le seul paramètre que vous devez fournir est la valeur de la période, le code est le suivant :
Code de tâche asynchrone en arrière-plan :
(Fin)
|