【问题标题】:Thread.Sleep vs Task.Wait [duplicate]Thread.Sleep 与 Task.Wait [重复]
【发布时间】:2015-12-08 05:54:08
【问题描述】:

我不知道不同的 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”正在做上下文切换。

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

【问题讨论】:

标签: c# multithreading loops wait sleep


【解决方案1】:

Thread.sleep 表示 Thread 挂起并且不工作。

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

【讨论】:

  • 感谢您的回答。 Task.Wait() 没有挂断并且异步线程完成了吗?不挂机就是cpu使用率高。嗯,cpu使用率很低。我不明白。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 2012-05-28
  • 2010-11-27
  • 2018-12-21
  • 2014-01-15
  • 1970-01-01
相关资源
最近更新 更多