2010-07-24 15:44:28
这里先说前者。
优势:
1:一个需要很长时间才能完成的操作,而且不希望用户界面中出现延迟,则可以使用 BackgroundWorker 类来在另一个线程上运行该操作。
2:出来dowork事件,在其他事件中可以直接对UI画面进行操作(这一点很重要)
后者:
system.timers.timer :虽然也是另起线程,但是他公用系统threadpool,有可能造成任务排队。时间的准确性严重下降。
system.windows.forms.timer: 启用.net消息处理机制,并非另起线程,他是有系统进程来执行的。业务时间长,造成户界面中出现延迟(不足之处可以弥补:另起线程)
system.threading.timer:另详。