C# 的三个TImer
2021/12/7 17:21:05
本文主要是介绍C# 的三个TImer,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、System.Timers.Timer应该是底层定时器,是比线层还底层、优先级更高的存在,是硬件定时器,理论上,它是最精准的。如果程序设计出错,你会发现exception里有“中断”字样、“外部访问”字样,中断机制是从30年前的DOS系统开始就有了。
2、System.Threading.Timer顾名思义是线程级别的定时器,它的时间是“线程时间”,放在主线程里调度子线程和逻辑模块是合适的,不会像第一个定时器,主线程退出了它可能还在。
3、System.Windows.Forms.Timer则是基于winform的定时器,它与form窗体绑定在一起,如果它阻塞,form界面就不会响应。它比较适合处理纯form元素的功能。另一个与它类似的是wpf里的System.Windows.Threading.DispatcherTimer,也是界面级的定时器。由于form和wpf的机制不同,所以就控件本身而言,不说cpu运算代价,form可以实现控件的并行效果,理论上wpf则不行。
第一个用错:导致野线程
第二个用错:逻辑功能停摆
第三个用错:界面卡死
这也是为什么C# 设计上强化了消息机制,消息本质上是一个0等待的、只执行一次的Timer,等于C#把定时器封装了,以此减少程序员的使用Timer的错误。
这篇关于C# 的三个TImer的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID