Thread.Sleep is actually used to block the thread Temporarily for an interval. Async CTP brings forth one probable alternative if you dont want to write yourself :
Probably in next release it will be
This works little different as it can work with await, but you can easily put a Task.Wait to get similar result as Thread.Sleep.
Task t = TaskEx.Delay(500);
is same as
Check my whole article
C# 5.0 vNext - New Asynchronous Pattern