ZT 傻傻分不清楚,C#中的3个定时器类详细解读

转贴自:https://baijiahao.baidu.com/s?id=1781856645054471742&wfr=spider&for=pc

它的总结很好。

 以下是三种定时器的总结:

1)System.Timers.Timer:这是一个后台线程的定时器,用于在服务器端执行周期性任务。它不会阻塞UI线程,因此适合在需要执行长时间运行的任务时使用。其优点是能够在后台线程上执行任务,而不会影响UI的响应性。但是需要注意的是,由于它运行在后台线程上,因此不能直接在事件处理方法中更新UI元素,需要通过委托或线程安全的方式来操作UI。

2)System.Threading.Timer:这是一个更通用的定时器,用于在指定的线程上调度任务。它可以设置回调方法,并指定初始等待时间和间隔时间。它适用于在多线程环境中使用,可以在非同步上下文中定期执行任务。由于Timer运行在指定的线程上,因此可以用来在指定的线程上调度任务。但是需要注意的是,如果回调方法中需要更新UI元素,也需要使用委托或线程安全的方式来操作UI。

3)System.Windows.Forms.Timer:这是一个专门为Windows Forms应用程序设计的定时器,用于定期执行任务并更新UI。它直接运行在UI线程上,因此可以直接在事件处理方法中获取和修改UI元素而不会出现问题。但是需要注意的是,由于它运行在UI线程上,如果定时器事件处理方法执行时间过长,会影响UI的响应性。因此,在使用Windows Forms Timer时需要注意控制事件处理方法的执行时间,避免阻塞UI线程。

 

另外,这几篇也不错:

https://www.cnblogs.com/weihengblogs/p/10043926.html

https://blog.csdn.net/m0_62355555/article/details/125540262

https://www.cnblogs.com/lzhdim/p/18187261

https://www.cnblogs.com/LXLR/p/17696125.html

posted @ 2025-01-08 11:45  PencilStart  阅读(1)  评论(0编辑  收藏  举报