"计时器"会占用更多CPU能力吗?

Muh*_*dar 5 c# timer cpu-usage

我已经使用了计时器,我发现它在几秒或几毫秒内做出决定时非常有帮助.现在我强烈感觉到计时器的连续运行会逐渐增加处理器周期的消耗.

我已经创建了一个应用程序(C#)并使用'timer tick'来执行每1000毫秒(1秒)的"三个"指令,我注意到5分钟后应用程序消耗了5%的CPU能力,10%后消耗了10%.

如果这个进度保持不变那么如果我在后台运行我的应用程序会在4-5小时后发生什么?

我应该避免过度使用计时器吗?

private void currentTime_Tick(object sender, EventArgs e)
{
   label1.Text = DateTime.Now.ToString("HH:mm:ss tt");
   label2.Text = dt.AddSeconds(i).ToString("HH:mm:ss");
   i++;
}
Run Code Online (Sandbox Code Playgroud)

vsz*_*vsz 2

在我看来,原因不是计时器本身,而是它调用的任何指令。您是否在这些指令中创建对象,或者调用在单独线程中运行的内容?启动线程或分配资源,然后忘记关闭它们肯定会导致您所描述的行为。

  • 除非其中一些标签有一些 onChanged() 或类似的事件处于活动状态,否则问题不应该出现在这部分代码中。您是否尝试隔离问题?当您注释掉“计时器滴答”中的所有内容时会发生什么?如果您将计时器间隔设置为慢 10 倍,或者根本不启动它,会发生什么情况? (3认同)