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

回到顶部