C#中的Thread.Sleep(1)有什么影响?
在Windows窗体应用程序中,Thread.Sleep(1)
如以下代码所示,调用的影响是什么:
public Constructor(){
Thread thread = new Thread(Task);
thread.IsBackground = true;
thread.Start();
}
private void Task()
{
while (true)
{
// do something
Thread.Sleep(1);
}
}
该线程会占用所有可用的CPU吗?
我可以使用什么配置技术来测量此线程的CPU使用率(任务管理器除外)?
回答:
如前所述,您的循环不会占用CPU。
但是请注意 :Windows 实时操作系统,因此您
从Thread.Sleep(1)每秒获得1000次唤醒。如果尚未使用timeBeginPeriod设置最低分辨率,则大约每15毫秒唤醒一次。即使将最低分辨率设置为1 ms,您仍然只能每3-4
ms唤醒一次。
为了获得毫秒级的计时器粒度,您必须使用Win32多媒体计时器(C#包装器)。
以上是 C#中的Thread.Sleep(1)有什么影响? 的全部内容, 来源链接: utcz.com/qa/431199.html