Quiero ejecutar una función periódicamente cada 1 segundo, por lo que después de 10 segundos se ejecuta 10 veces. El enfoque más simple está utilizando un bucle como este:sleep-until in C#
while(true)
{
Thread.Sleep(1000);
function();
}
Sin embargo, el principal problema con este enfoque es que no se da ninguna garantía periódicas. quiero decir si se tarda 0,1 segundos para la función (ejecución) el tiempo de ejecución de la función será la siguiente: 0, 1.1, 2.2, 3.3, 4.4, ...
Según recuerdo, en el lenguaje en tiempo real ADA tenemos una función sleep-until-hasta (#time). Ahora estoy buscando una alternativa en C#.
Cualquier código de muestra será apreciado.
Duerme en inverals más pequeños y comprueba si ha transcurrido un segundo antes de ejecutar el código. – VVS
¿Qué desea que suceda si función() tarda más de 1 segundo en ejecutarse? –
C# no es un lenguaje en tiempo real. ni siquiera está garantizado que el hilo se ejecutará exactamente después de 1 segundo, ya que podría haber otros hilos/procesos. si necesita ser tan preciso, ¿tal vez debería usar algunas otras herramientas? – YavgenyP