【问题标题】:C# During Monitor.Wait, Did the thread use CPU resource?C# 在 Monitor.Wait 期间,线程是否使用 CPU 资源?
【发布时间】:2016-11-24 02:42:20
【问题描述】:

在 ThreadTest 被 Monitor.Wait 等待期间,ThreadTest 是否占用了 CPU 资源?

这是我的代码:

void ThreadTest()  
{  
    lock (ObjectA)  
    {  
       ...  

       lock (ObjectB)   
       {  
           while (Condition)  
           {  
                Monitor.Wait(ObjectB);  
           }  
       }  

       ...  

    }   
}  


void Resume()  
{  
     lock (ObjectB)  
     {  
          Condition = true;  
          Monitor.Pulse(ObjectB);  
     }  
}  

我想知道 while(Condition) 是否连续调用 Monitor.Wait?

【问题讨论】:

  • ThreadTest 和 Resume 方法是在不同线程上的吗
  • @EmrahSüngü 是的,简历在 UI 线程上。 ThreadTest 是工作线程,由 UI Thread 启动
  • 有一些工具可以让您轻松检查线程的 CPU 使用率,例如进程监视器
  • @DirkVollmar 当我看到进程监视器时,CPU 使用率几乎没有变化。所以我不知道。

标签: c# multithreading cpu monitor


【解决方案1】:

Monitor.Wait() 阻止执行,直到另一个线程调用 Pulse()。它旨在在等待时使用尽可能少的资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2012-08-26
    • 2013-01-02
    • 2011-12-15
    • 2023-02-03
    • 2019-05-17
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多