我应该在主循环期间确保一个值在它的范围内,还是在它应该改变的时候修复它?

本文关键字:范围内 候修复 改变 循环 确保 一个 我应该 | 更新日期: 2023-09-27 18:05:58

目前我的程序中有很多地方都有这段代码,比如窗体大小调整事件,拆分器移动事件,文档大小更改等等:

hsc.Value = (int)MathHelper.Clamp(hsc.Value, 0, hsc.Maximum - hsc.LargeChange + 1);
vsc.Value = (int)MathHelper.Clamp(vsc.Value, 0, vsc.Maximum - vsc.LargeChange + 1);

我想知道是否把它放在一个主循环中会更好,因为我的程序有一个绘图代码,每当应用程序空闲时(经常)调用。

在事件中使用此代码的缺点是它是代码重复,我可能会错过一个事件。在循环中使用它的缺点是可能不是每个循环都需要它,并且浪费了处理器周期。但是,这可能是过早的优化,因为最终用户可能不会注意到它。

我应该在主循环期间确保一个值在它的范围内,还是在它应该改变的时候修复它?

您使用的是什么框架?(WinForms, WPF, Silverlight等)

如果它在每个窗口/窗体/视图/UserControl中,那么你可以考虑把这个功能放在一个基类中,并将所有这些事件指向基类中的事件处理程序。

你的解决方案似乎都不正确-如果没有任何改变,你不应该在"主循环"中重新绘制,你不应该在整个应用程序中复制/粘贴重复的代码。