C# .NET计时器控件在最小化窗口时运行得更快
这实际上是一个明显的区别,我已经看到了,但无法解释。这些计时器的间隔设置为1ms(可用的最低间隔),但当它被最小化时,它似乎跳得更快?有人能给我解释一下这种现象吗?如果可能,请解释如何在窗口最大化时再现效果?如果我没记错的话,您可以从C# .NET计时器控件在最小化窗口时运行得更快,c#,.net,controls,timer,minimized,C#,.net,Controls,Timer,Minimized,这实际上是一个明显的区别,我已经看到了,但无法解释。这些计时器的间隔设置为1ms(可用的最低间隔),但当它被最小化时,它似乎跳得更快?有人能给我解释一下这种现象吗?如果可能,请解释如何在窗口最大化时再现效果?如果我没记错的话,您可以从System.Windows.Forms.Timer(我假设您在这里使用的)中获得的最小分辨率是55毫秒。将其设置为1毫秒基本上意味着它会持续滴答作响 当然,计时器不能保证滴答声会准确地到达指定的时间间隔。如果你的应用程序正忙于做其他事情(比如重新绘制屏幕),那么可
System.Windows.Forms.Timer
(我假设您在这里使用的)中获得的最小分辨率是55毫秒。将其设置为1毫秒基本上意味着它会持续滴答作响
当然,计时器不能保证滴答声会准确地到达指定的时间间隔。如果你的应用程序正忙于做其他事情(比如重新绘制屏幕),那么可能需要几毫秒,或者在重载情况下需要更多时间。如果计时器设置为1秒的间隔,您不会真正注意到这一点,但在最小窗口(55毫秒)下,您可能会注意到
当应用程序最小化时,可以在触发计时器事件之前中断计时器事件的其他事件就更少了。这是一个
窗体。计时器
我怀疑它运行得更快,更有可能是计时器触发事件得到了更及时的处理。虽然最小化了,但窗体windows的消息泵处理的消息可能会更少,这可能会导致处理计时器消息的时间片更大。还有最小计时器分辨率的问题
如果适用,请尝试使用其他计时器类型之一,例如System.Timers
Windows窗体计时器组件是
单螺纹,并且仅限于
精确到55毫秒。如果你
需要一个带有
更高的精度,使用定时器类
在System.Timers命名空间中
.顺便说一句,你知道这是一个.NET
定时器
控件而不是C#吗?在VB.NET、F#等中使用相同的控件。对不起,我是在暗示我使用的语言是C#。我只是碰巧笨拙地点了一道菜。你的记性比我好,我得查一下时间间隔!