Requisiti: Usa ASP.NET Core 6 per creare un nuovo servizio di background da intervistare regolarmente per ottenere dati, e utilizzaloSystem.Timers.TimerIl sondaggio del timer, aggiungere codice Monitor aggiuntivo per evitare esecuzioni ripetute contemporaneamente, anche se soddisfa le mie esigenze aziendali, non è abbastanza elegante, e l'uso del nuovo timer PeriodicTimer in .NET 6 può soddisfare meglio le esigenze del mio business.
Come sviluppatore, potresti aver già usato timer in .NET in passato. Oggi esistono molti tipi di timer in .NET, ognuno con uno scopo diverso. Come segue:
- System.Threading.Timer
- System.Timers.Timer
- System.Windows.Forms.Timer
- System.Web.UI.Timer
- System.Windows.Threading.DispatcherTimer
Un nuovo Timer è stato introdotto in .NET 6 - System.Threading.PeriodicTimer, e la differenza più grande rispetto ai Timer precedenti è che la gestione degli eventi del nuovo PeriodicTimer può essere utilizzata in modo asincrono più comodo, eliminando il meccanismo di callback e riducendone la complessità dell'uso.
.NET 6 introdusse un nuovo tipo di timer chiamato PeriodicTimer. Lo scopo principale di PeriodicTimer è evitare di usare callback.Evitare i callback ci salva dalla gestione di perdite di memoria che possono verificarsi nelle operazioni a lungo termine, e possiamo scrivere codice async invece di sync su async per usare quel metodo nei callback. Potresti dover affrontare il tipo attuale di timerUn altro problema sono le sovrapposizioni dei callback。 Se non scrivi codice per scenari di richiamata in modo di sovrapposizione, potresti notare comportamenti inaspettati nella tua applicazione.
crearePeriodicTimerL'istanza è molto semplice, l'unico parametro che devi fornire è il valore del periodo, il codice è il seguente:
Codice di Task di Background per la Temporizzazione Asincrona:
(Fine)
|