这个问题的简短形式是:什么时候适合在多线程WinForms应用程序中使用Forms.Timer?
更具体地说,我正在设计一个使用多个System.Threading.Timers异步启动进程的应用程序,检查包含这些异步进程结果的队列,并更新要由应用程序的主窗体显示的统计信息。
在这样的应用程序中,使用Forms.Timer来实际检查应用程序统计数据并将其绘制到主窗体中是否合适,或者这是否会影响应用程序的顺利运行?
发布于 2009-01-06 22:32:14
Forms.Timer注册计时器,以便在计时器关闭时发送消息。引发的事件被视为GUI事件。System.Threading.Timer使用线程阻塞方法。基本上,您应该将Forms.Timer用于面向图形用户界面的计时器(为用户界面添加一些效果),而将Threading.Timer用于调度任务和其他事情。
发布于 2009-01-06 22:25:16
MSDN有一个comparison article来处理这个问题。
发布于 2009-01-06 22:35:50
我同意Mehrdad和David的说法,但您应该知道,计时器不能保证时间、顺序或执行。计时器太多,应用程序就会挂起;-)
https://stackoverflow.com/questions/418423
复制相似问题