0

我有一个 Windows 窗体应用程序,它在一段时间后重复调用一个方法。所以我担心CPU使用率。我知道有两种方法可以做到这一点:

1) 使用 Timer 组件2)循环
调用Thread.Sleep(time)

那么,哪一个更好呢?哪个使用 CPU 较少或不使用 CPU ?

4

2 回答 2

1

如果您想每隔一定时间定期执行某些代码块,请使用专为此设计的计时器。一点点 CPU 架构知识向您展示,有一些通用计时器不消耗任何处理器或操作系统资源来生成准确的时间延迟。

另一方面,将线程保持在挂起状态并将其切换到执行并将其排入就绪队列将消耗 CPU 和操作系统资源。

于 2012-08-07T22:41:23.807 回答
1

没关系,因为即使您将循环设置为 1 毫秒,您也无法真正测量 CPU 使用率。会那么低。

出于可靠性、可维护性和可读性的原因,您应该使用System.Windows.Forms.Timer.

于 2012-08-07T22:41:26.760 回答