Wymagania: Użyj ASP.NET Core 6 do stworzenia nowej usługi tła do regularnego odpytywania danych i korzystania z niejSystem.Timers.TimerTimer pollling, dodanie dodatkowego kodu Monitor, aby zapobiec powtarzającemu się wykonywaniu w tym samym czasie, choć spełnia moje potrzeby biznesowe, nie jest wystarczająco eleganckie, a użycie nowego timera PeriodicTimer w .NET 6 lepiej spełnia moje potrzeby biznesowe.
Jako programista mogłeś już wcześniej korzystać z timerów w .NET. Obecnie w .NET istnieje wiele typów timerów, z których każdy pełni inną funkcję. Następujący sposób:
- System.Threading.Timer
- System.Timers.Timer
- System.Windows.Forms.Timer
- System.Web.UI.Timer
- System.Windows.Threading.DispatcherTimer
W .NET 6 wprowadzono nowy Timer – System.Threading.PeriodicTimer, a największą różnicą w porównaniu z poprzednimi Timerami jest to, że obsługa zdarzeń nowego PeriodicTimera może być wygodniejsza i asynchroniczna, eliminując mechanizm korzystania z callbacków i zmniejszając złożoność użycia.
.NET 6 wprowadził nowy typ timera o nazwie PeriodicTimer. Głównym celem PeriodicTimer jest unikanie stosowania callbacków.Unikanie callbacków oszczędza nam problemów z wyciekami pamięci, które mogą wystąpić w długoterminowych operacjach, i możemy pisać kod asynchroniczny zamiast synchronizacji przez asynchronię, aby użyć tej metody w callbackach. Możesz mieć do czynienia z obecnym typem timeraKolejnym problemem są nakładające się callbacki。 Jeśli nie napiszesz kodu dla scenariuszy nakładania się callback, możesz zauważyć nieoczekiwane zachowania w aplikacji.
tworzyćPeriodicTimerInstancja jest bardzo prosta, jedynym parametrem, który musisz podać, jest wartość okresowa, kod wygląda następująco:
Kod zadania w tle asynchronicznego tempowania:
(Koniec)
|