Threading.Timer与Forms.Timer

Yes*_*ke. 19 .net multithreading .net-2.0 winforms

这个问题的简短形式:在多线程WinForms应用程序中使用Forms.Timer是否恰当?

更具体地说,我正在构建一个应用程序,它使用多个System.Threading.Timers异步启动进程,检查包含这些异步进程结果的队列,并更新应用程序主表单显示的统计信息.

在这样的应用程序中,是否适合使用Forms.Timer来实际检查应用程序统计信息并将它们绘制到主窗体中,或者这只会让应用程序顺利运行?

Meh*_*ari 24

Forms.Timer注册定时器以在定时器关闭时发送消息.引发的事件被视为GUI事件.System.Threading.Timer使用线程阻塞方法.基本上,您应该使用Forms.Timer面向GUI的计时器(向用户界面添加一些效果)以及Threading.Timer计划任务和其他事情.


t3r*_*rse 14

MSDN有一篇比较文章,主题正义.

  • 体面的文章.出于本讨论的目的,如果您总结两者之间给出的差异(Threading.Timer需要同步但提供更多控制,Forms.Timer不一定会为每个滴答生成事件等,那将是很好的. ) (2认同)
  • @ t3rse:链接死了:( (2认同)