在C#中开始我的第一个严肃的GUI应用程序。
我有一个正在处理和执行大量操作的类,我可以将GUI控制器类中的方法插入到适当的事件中并获取事件。
每当更新此信息时,我都会想要更新几个列表框和其他控件。但是,我想稍微扼杀一下。
对于我的GUI表单上的控件,如果我让它(每次代理触发)时会经常更新,我应该放一个可能每秒更新一次的计时器。其他人只需在控制数据流的类中更新它们。
这是专业人士会做的吗?我讨厌使用计时器,如果我可以避免,但我害怕表格更新像疯了,视情况而定。
答案 0 :(得分:2)
我没有看到使用计时器有什么问题。这就是限制,实质上是 - 每秒不允许超过 x 事件。重要的是让您的计时器检查以确保在盲目更新UI之前发生了某些变化 - 您不希望它无缘无故地每半秒进行一次屏幕更新。
所以 - 像往常一样挂钩事件,但不是立即更新,而是设置一个标志。计时器可以在更新UI之前检查标志。
或者,如果您是优化的坚持者,请让事件启动计时器,让计时器在更新后立即停止;这样,除非最近发生了一次事件,否则你的计时器根本不会运行。
我不能对这个“专业人士”会做什么的问题给出一个明确的答案,因为这个领域的专业人士似乎有很多不同的做法。