Every N minutes we want to run through a list of tasks. So we\'ve created a task executor with a
do { DoWork(); }while(!stopRequested)
No
Thread.Sleep isn't the devil - you could use it for a scenario like this. It's just not very reliable for short durations.
Using a WaitHandle is a good option - but you need a specific instance of a wait handle. It won't do this alone, however.
That being said, most of the time, operations like this are better suited towards using a Timer. Is there a reason you're trying to process this in a loop rather than just using a Timer to start off the work item?