Požadavky: Použít ASP.NET Core 6 k vytvoření nové služby na pozadí, kterou budete pravidelně dotazovat za účelem získání dat, a použít jiSystem.Timers.TimerTimer pollling, přidání dalšího Monitor kódu pro zabránění opakovanému spouštění současně, i když splňuje mé obchodní potřeby, není dostatečně elegantní a použití nového PeriodicTimer timeru v .NET 6 může lépe vyhovět mým obchodním potřebám.
Jako vývojář jste možná už dříve používali časovače v .NET. Dnes existuje v .NET mnoho typů časovačů, z nichž každý slouží jinému účelu. Následovně:
- System.Threading.Timer
- System.Timers.Timer
- System.Windows.Forms.Timer
- System.Web.UI.Timer
- System.Windows.Threading.DispatcherTimer
V .NET 6 byl představen nový Timer – System.Threading.PeriodicTimer – a největší rozdíl oproti předchozím Timerům spočívá v tom, že zpracování událostí nového PeriodicTimeru lze používat pohodlněji asynchronně, což eliminuje mechanismus callbacků a snižuje složitost použití.
.NET 6 představil nový typ časovače nazvaný PeriodicTimer. Hlavním účelem PeriodicTimeru je vyhnout se používání callbacků.Vyhýbání se callbackům nás šetří před úniky paměti, které mohou nastat při dlouhodobém provozu, a můžeme psát asynchronní kód místo synchronizace přes async, abychom tuto metodu použili při callbacku. Možná máte co do činění s aktuálním typem časovačeDalším problémem jsou překrývající se callbacky。 Pokud nepíšete kód pro scénáře překryvu zpětného volání, můžete ve své aplikaci zaznamenat neočekávané chování.
vytvářetPeriodicTimerInstance je velmi jednoduchá, jediný parametr, který musíte uvést, je hodnota periody, kód je následující:
Asynchronní časový kód pozadí:
(Konec)
|