我正在构建一个从套接字数据和图表行读取的WinForms应用程序。
我使用System.Windows.Forms.Timer
每秒触发
我的问题是关于Timer对象:我有一个Timer对象,每个WinForm都有一个重绘图表;所以假设我有20个图表,我将有20个表格,共有20个计时器。
这是一个好方法吗?我根据以下内容做出了决定(如果我错了请纠正我)
Forms.Timer
实例不会在我的应用程序上创建一个Thread,但只是在从Form的消息泵接收WM_TIMER事件时触发该事件。太多的计时器是一个好方法还是我有缺点? 谢谢 AFG
答案 0 :(得分:2)
这是一种很好的方法,尽管您可能希望重复使用计时器,而不是为每个表单创建单独的计时器
例如,您可以创建一个static
Timer对象,并在表单构造函数中添加Tick
处理程序。当表单关闭时(Dispose
或OnClose
),或者您的表单永远不会死亡,请务必取消订阅活动。
答案 1 :(得分:1)
也许更好的方法是使用工作线程来接收数据并使用从该工作线程触发的事件来通知UI重绘自己。
答案 2 :(得分:0)
为什么不在套接字收到数据时立即重新划线?