Alternativas ao Thread.Sleep ()

cada N minutos, queremos executar uma lista de tarefas. Então, criamos um executor de tarefas com um

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

gora, queremos fazer uma pausa entre os ciclos de trabalho. Todo mundo parece pensar que Thread.Sleep () é o diabo. Eu já vi menção de usar coisas de Monitor / Evento, mas não temos mais ninguém nos dizendo para fazer o trabalho. Nós só queremos fazer coisas a cada N minutos, como um relógi

Existe uma alternativa ou eu encontrei um uso válido do Thread.Sleep?

Alguém em outro post mencionou WaitHandle.WaitOne () como uma alternativa, mas você não pode chamar isso de um método não estático, aparentemente? Ou pelo menos não posso, porque recebo um erro de tempo de compilação de ..

Uma referência de objeto é necessária para o campo, método ou propriedade não estática 'System.Threading.WaitHandle.WaitOne (System.TimeSpan)'

questionAnswers(10)

yourAnswerToTheQuestion