Alternativas a Thread.Sleep ()

Cada N minutos queremos ejecutar una lista de tareas. Así que hemos creado un ejecutor de tareas con una

do { DoWork(); }while(!stopRequested)

Ahora queremos tener una pausa entre los ciclos de trabajo. Todo el mundo parece pensar que Thread.Sleep () es el diablo. He visto mencionar el uso de cosas de Monitor / Evento, pero no tenemos a nadie más que nos diga que hagamos el trabajo. Solo queremos hacer cosas cada N minutos como un reloj.

Entonces, ¿hay alguna alternativa o he encontrado un uso válido de Thread.Sleep?

Alguien en otra publicación mencionó WaitHandle.WaitOne () como una alternativa, pero aparentemente no se puede llamar desde un método no estático. O al menos no puedo porque obtengo un error de tiempo de compilación de ..

Se requiere una referencia de objeto para el campo, método o propiedad no estático 'System.Threading.WaitHandle.WaitOne (System.TimeSpan)'

Respuestas a la pregunta(10)

Su respuesta a la pregunta