Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3427|Odpowiedź: 2

[Źródło] Nowy timer w .NET 6, PeriodicTimer, jest używany

[Skopiuj link]
Opublikowano 02.08.2023 19:12:40 | | |
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)





Poprzedni:Błędy dekodowania Base64 występują we wszystkich wersjach .NET
Następny:.NET/C# generyczne wyjście kowariantne T i inwerter w interfejsie
 Ziemianin| Opublikowano 02.08.2023 20:22:23 |
 Ziemianin| Opublikowano 12.11.2023 09:42:28 |
Usługa zostaje zatrzymana, a CancellationToken informuje o anulowaniu zadania, co skutkuje rzutem:OperationCanceledExceptionnienormalny
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com