Thread.Sleep vs Task.Wait

时间:2015-12-08 05:54:08

标签: c# multithreading loops wait sleep

我不知道不同的Thread.Sleep()和Task.Wait()。

public void Start ()
{
    mytask = new Task( ()=> { this.Proccess(); });
    mytask.Start();
}

private void Process()
{
    while(true)
    {
        if( blahblah )
             { process.. }
        else
            {
                Thread.Sleep((int)1000/30);     // name is "A".
                // mytask.Wait( (int)1000/30 );  // name is "B".
            }
    }
}

我使用的是C ++语言。 然后我使用Sleep()进行线程上下文切换。

“A”代码是cpu使用率低。 “B”代码是cpu使用率低。

所以“A”和“B”正在进行上下文切换。

有什么不同?我使用的代码是什么?

1 个答案:

答案 0 :(得分:1)

Thread.sleep表示线程正在挂起而无法正常工作。

Task.Wait表示等待异步线程完成。