Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3427|Respuesta: 2

[Fuente] Se utiliza un nuevo temporizador en .NET 6, PeriodicTimer,

[Copiar enlace]
Publicado en 2/8/2023 19:12:40 | | |
Requisitos: Utilizar ASP.NET Core 6 para crear un nuevo servicio de antecedentes que consulten regularmente para obtener datos, y emplearloSystem.Timers.TimerEl sondeo por temporizador, añadir código adicional de Monitor para evitar la ejecución repetida al mismo tiempo, aunque se adapta a las necesidades de mi negocio, no es lo suficientemente elegante, y usar el nuevo temporizador PeriodicTimer en .NET 6 puede cubrir mejor las necesidades de mi negocio.

Como desarrollador, puede que hayas usado temporizadores en .NET antes. Hoy en día existen muchos tipos de temporizadores en .NET, cada uno con un propósito diferente. Como sigue:

  • System.Threading.Timer
  • System.Timers.Timer
  • System.Windows.Forms.Timer
  • System.Web.UI.Timer
  • System.Windows.Threading.DispatcherTimer


Se introdujo un nuevo temporizador en .NET 6 - System.Threading.PeriodicTimer, y la mayor diferencia respecto a los temporizadores anteriores es que la gestión de eventos del nuevo temporizador periódico puede usarse de forma asíncrona más conveniente, eliminando el mecanismo de usar callbacks y reduciendo la complejidad del uso.

.NET 6 introdujo un nuevo tipo de temporizador llamado PeriodicTimer. El propósito principal de PeriodicTimer es evitar usar callbacks.Evitar las devoluciones de llamada nos ahorra tener que lidiar con fugas de memoria que pueden ocurrir en operaciones a largo plazo, y podemos escribir código asíncrono en lugar de sincronizado sobre asíncrono para usar ese método en callbacks. Puede que estés lidiando con el tipo actual de temporizadorOtro problema son las devoluciones de llamada solapadas。 Si no escribes código para escenarios de solapamiento de callback, puedes ver comportamientos inesperados en tu aplicación.

crearTemporizador PeriódicoLa instancia es muy sencilla, el único parámetro que necesitas proporcionar es el valor del periodo, el código es el siguiente:

Código de tarea de segundo plano de temporización asincrónica:

(Fin)





Anterior:Existen errores de decodificación en Base64 en todas las versiones de .NET
Próximo:.NET/C# salida genérica en T covariante y inversor en la interfaz
 Propietario| Publicado en 2/8/2023 20:22:23 |
 Propietario| Publicado en 12/11/2023 9:42:28 |
El servicio se detiene, y el CancellationToken notifica la cancelación de la tarea, lo que provoca el lanzamiento:OperaciónCanceledExceptionanormal
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com