Quiero repetir una función desde el momento en que se abre el programa hasta que se cierra cada pocos segundos. ¿Cuál sería la mejor manera de hacer esto en C#?Repetir una función cada pocos segundos
Respuesta
Use un temporizador. Hay 3 tipos básicos, cada uno adecuado para diferentes propósitos.
Utilizar solamente en una aplicación de Windows Forms. Este temporizador se procesa como parte del ciclo de mensajes, por lo que el temporizador se puede congelar a alta carga.
Cuando necesite sincronicidad, utilice éste. Esto significa que el evento tick se ejecutará en la secuencia que inició el temporizador, lo que le permite realizar operaciones de GUI sin mucha molestia.
Esta es la más alta potencia temporizador, que dispara las garrapatas en un subproceso de fondo. Esto le permite realizar operaciones en segundo plano sin congelar la GUI o el hilo principal.
En la mayoría de los casos, recomiendo System.Timers.Timer.
Utilice un timer. Tenga en cuenta que .NET viene con una cantidad de temporizadores diferentes. This article cubre las diferencias.
MSDN Magazine está muerto. –
Gracias. Enlace actualizado –
Para ello, el System.Timers.Timer
funciona mejor
// Create a timer
myTimer = new System.Timers.Timer();
// Tell the timer what to do when it elapses
myTimer.Elapsed += new ElapsedEventHandler(myEvent);
// Set it to go off every five seconds
myTimer.Interval = 5000;
// And start it
myTimer.Enabled = true;
// Implement a call with the right signature for events going off
private void myEvent(object source, ElapsedEventArgs e) { }
Ver Timer Class (.NET 4.6 and 4.5) para más detalles
enlacePara el beneficio de los buscadores que buscan una copia rápida y pegar la consola, utilicé el ejemplo de @IvoTops y creé un ejemplo aquí -> https://gist.github.com/HockeyJustin/1161699bd26adb5c054d. – HockeyJ
- 1. anotación @Schedule salen cada pocos minutos (o segundos)
- 2. Llamar a una función cada 60 segundos
- 3. Cómo hacer un bucle de una imagen de fondo CSS con Jquery cada pocos segundos?
- 4. Ejecutar la función especificada cada X segundos
- 5. Jquery: realice una acción cada dos segundos
- 6. ¿Cómo puedo llamar a una función cada 3 segundos durante 15 segundos?
- 7. intente abrir una página cada 10 segundos
- 8. Java Thread cada X segundos
- 9. GWT: ¿Puedo poner retardo de unos pocos segundos después de mostrar una ventana emergente
- 10. ¿Función de Javascript para volver a cargar una página cada X segundos?
- 11. cómo programar llamadas ajax cada N segundos?
- 12. Android Cambiar la imagen cada 10 segundos
- 13. Trabajos cron: para ejecutar cada 5 segundos
- 14. Cómo ejecutar un método cada X segundos
- 15. Actualizar una tabla con jQuery/Ajax cada 5 segundos
- 16. jQuery - llamada AJAX cada 10 segundos
- 17. cambio de imagen cada 30 segundos -
- 18. jQuery Solicitud Ajax cada 30 segundos
- 19. Haga algo cada 5 segundos y el código para detenerlo. (JQuery)
- 20. repetir cada línea de código de Ruby como sh -x?
- 21. Obtener la ubicación de Android GPS una vez cada pocos minutos
- 22. ¿Cómo retraso una llamada de función durante 5 segundos?
- 23. ¿Es cada objeto de JavaScript una función?
- 24. Llamar a una función cada 10 minutos
- 25. Ejecutar una función cada X minutos - Python
- 26. 'Repetir' en Haskell?
- 27. ¿Cuándo verificar EINTR y repetir la llamada de función?
- 28. Demasiados pocos argumentos
- 29. Ejecutar una operación cada x segundos durante y minutos en C#
- 30. Recargar datos AJAX cada X minutos/segundos, jQuery
Simplemente una adición, en realidad hay algo más que esto, por ejemplo, hay 'DispatcherTimer' (WPF/Silverlight), así como otras herramientas similares a las del temporizador. –
Tenga en cuenta también que el evento transcurrido de System.Timers.Timer se desencadena en el subproceso de la interfaz de usuario si establece SynchronizingObject, de lo contrario, se desencadena en un subproceso de ThreadPool. –
Una cosa a tener en cuenta es que si desea confiabilidad ninguno de estos funciona el 100% del tiempo, particularmente en sistemas con mucha carga. –