这个问题的简短形式:在多线程WinForms应用程序中使用Forms.Timer是否恰当?
更具体地说,我正在构建一个应用程序,它使用多个System.Threading.Timers异步启动进程,检查包含这些异步进程结果的队列,并更新应用程序主表单显示的统计信息.
在这样的应用程序中,是否适合使用Forms.Timer来实际检查应用程序统计信息并将它们绘制到主窗体中,或者这只会让应用程序顺利运行?
Forms.Timer
注册定时器以在定时器关闭时发送消息.引发的事件被视为GUI事件.System.Threading.Timer
使用线程阻塞方法.基本上,您应该使用Forms.Timer
面向GUI的计时器(向用户界面添加一些效果)以及Threading.Timer
计划任务和其他事情.
MSDN有一篇比较文章,主题正义.