Writing an infinite loop is simple:
while(true){
//add whatever break condition here
}
But this will trash the CPU performance. This ex
The Timer approach is probably your best bet, but since you mention Thread.Sleep there is an interesting Thread.SpinWait or SpinWait struct alternative for similar problems that can sometimes be better than short Thread.Sleep invocations.
Also see this question: What's the purpose of Thread.SpinWait method?