当前位置: 首页 > news >正文

.NET系列 定时器

net一共4种定时器

  1. System.Windows.Forms.Timer 类型 》》WinForm专用
  2. System.Windows.Threading.DispatcherTime类型》》WPF专用
  3. System.Threading.Timer类型》》》它使用 ThreadPool 线程来执行定时操作
  4. System.Timers.Timer类型 》》这种很老了。 它使用基于底层计时器的实现,而不是线程池线程

》》System.Windows.Forms.Timer
.net设计这个定时器的目的是为了方便程序员在Window Form中使用定时器。当一个System.Windows.Forms.Timer类被构造时,当前定时器会和当前线程进行关联。而当计时器的计时达到后,一个定时器消息将被插入到当前线程的消息队列中。当前线程逐一处理消息中的所有消息,并一一派发给各自的处理方法。这样的机制和利用工作者进程定时有很大的区别,事实上,System.Windows.Forms.Timer类型并没有涉及多线程的操作,定时器的设置、定时方法的执行都在同一个线程之上。

这就意味着System.Windows.Forms.Timer并不能准确计时,事实上,当消息阻塞时,定时器的误差将非常大,因为定时器消息只能等待在前面的所有消息处理完后才能得到处理。但是因为System.Windows.Forms.Timer类型的定时器并不涉及多线程的操作,因此是线程安全的,不会发生回调方法重入的问题。

System.Windows.Forms.Timer 并不是线程,而是依赖于UI线程,依赖于Windows消息循环机制而实现的定时器。
所以它可以直接更新UI线程的控件内容(不需要Invoke)。

》》》》》它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。

System.Threading.Timer类型》

在这里插入图片描述
线程安全

http://www.lryc.cn/news/427865.html

相关文章:

  • 【Golang】火焰图空白部分是什么?
  • Web框架 --- 解析Web请求 [FromBody] [FromQuery] [FromRoute] [FromHeader]
  • Messari 摘要报告:Covalent Network(CXT)2024 Q2 品牌重塑、AI模块化数据、亚太地区扩展、代币回购计划和网络增长
  • Open3D 计算点云的面状指数
  • python下麦克风设备选择和录音
  • 云和集群有什么区别?
  • 无人机视角下的EasyCVR视频汇聚管理:构建全方位、智能化的AI视频监控网络
  • 数字影像技术是如何改变我们看待世界的方式呢?
  • Chainlit实现启动页面选择不同的LLM启动器等设置界面
  • SQL - 增、改、删
  • 怎么屏蔽电脑监控软件?企业管理者的智慧选择——精准定位,合理屏蔽,让监控软件成为助力而非障碍!
  • Linux·权限与工具-make
  • C++的序列容器——数组
  • TCC 和 XA 协议之间的区别?
  • 萌啦数据插件使用情况分析,萌啦数据插件下载
  • C++初学(13)
  • 目标检测之数据增强
  • 本地下载安装WampServer结合内网穿透配置公网地址远程访问详细教程
  • 一篇文章理清Java持久化脉络(关于JDBC、JPA、Hibernate、Spring Data JPA)
  • 【数学分析笔记】第2章第1节实数系的连续性(1)
  • Speech Synthesis (LASC11062)
  • 拟合与插值|线性最小二乘拟合|非线性最小二乘拟合|一维插值|二维插值
  • 《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类
  • 使用Virtio Driver实现一个计算阶乘的小程序——QEMU平台
  • 【PyCharm】配置“清华镜像”地址
  • IO器件性能评估
  • 在js中判断对象是空对象的几种方法
  • 【整理】后端接口设计和优化相关思路汇总
  • docker 部署 sql server
  • 微信云开发云存储 下载全部文件