Thread.Sleep替代Thread.Sleep

时间:2013-11-15 12:32:09

标签: c# multithreading threadpool

我正在寻找一种替代方法来调用Thread.Sleep,它不会阻塞线程,而是将线程返回到线程池中。这样的事情存在吗?

3 个答案:

答案 0 :(得分:9)

使用Task.Delay

await Task.Delay(delay);

答案 1 :(得分:1)

如果线程正在返回池中,那么它将不会在相关方法中再做任何工作。将方法的下一位作为单独的方法,并创建一个调用它的Timer。

答案 2 :(得分:1)

您也可以使用Timer例如:

using System.Timers;

private void Main()
{
    Timer t = new Timer();
    t.Interval = 5000; // 5 seconds
    t.AutoReset = false;
    t.Elapsed += new SleepDone(TimerElapsed);
    t.Start();
}

private void SleepDone(object sender, ElapsedEventArgs e)
{
    Console.WriteLine("HERE WHAT COME AFTER SLEEP");
}