.NET系列 定时器

news2024/11/14 18:22:44

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.coloradmin.cn/o/2055445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode刷题-动态规划part02

代码随想录动态规划part02|62.不同路径 、63.不同路径II 、343. 整数拆分、 62.不同路径63.不同路径 II343. 整数拆分 再看本题思路并不容易想,一刷建议可以跳过。如果学有余力,可以看视频理解一波。 96.不同的二叉搜索树 跳过 62.不同路径 leetcode题目…

Netty源码小窥探(一)

记录背景 最近在学习Netty,阅读了部分源码,记录一下笔记,方便自己回顾和也希望能作为初学的小伙伴们的部分参考。 本次Netty源码小窥探会是一个小合集,因为个人能力有限,介绍程度肯定不会太深奥,个人是基…

记录|链接MySQL数据库实现学生管理系统

目录 前言一、管理系统的后台数据库1.1 创建DB库1.2 创建login表和student表login表student表 二、窗体创建1.1 VS项目框架1.2 窗口1设计:登录窗口所需控件界面效果 1.3 窗口2设计:学生信息管理界面添加新界面所需控件界面效果 1.4 窗口3设计&#xff1a…

用低代码平台搭建了一套贷前进件系统,1天搞定!

贷前进件系统是什么 贷前进件系统是指金融机构(如银行、消费金融公司等)在贷款申请过程中,用于收集、整理、审核和管理借款人申请资料的系统。该系统是贷款流程中的重要环节,主要作用在于提高贷款申请的处理效率,降低…

滑动变阻器的未来发展趋势和前景如何?是否有替代品出现?

滑动变阻器是常见的电子元件,主要用于调节电路中的电阻值。随着科技的不断发展,滑动变阻器的未来发展趋势和前景也引起了广泛关注。 滑动变阻器的未来发展将更加注重智能化,随着物联网、人工智能等技术的快速发展,滑动变阻器也将与…

Transformer中的位置编码:绝对位置编码、相对位置编码与旋转位置编码

1. 引言 Transformer模型自2017年提出以来,凭借其在序列到序列任务中的优异表现,迅速成为自然语言处理(NLP)领域的主流模型。与传统的循环神经网络(RNN)不同,Transformer模型完全基于自注意力机…

Java 入门指南:反射机制

RTTI RTTI(Run-Time Type Identification)是一种在运行时确定对象类型的机制。它是一种编程语言特性,主要用于在运行时动态识别和处理对象的实际类型。 通过 RTTI,可以在运行时根据对象的实际类型执行相应的操作。这在处理多态对…

sdn nce insight

SDN(Software-Defined Networking) 和 NFV(Network Functions Virtualization) 是现代网络架构中的两项关键技术,它们共同推动了网络的虚拟化、自动化和灵活性。尽管它们各自有不同的焦点和应用领域,但通常…

HarmonyOS应用四之页面加载构建以及数据请求

目录: 1、加载网络页面/本地页面/html页面2、页面布局3、HTTP/HTTPS的数据请求4、上传图片并保存数据 1、加载网络页面/本地页面/html页面 // xxx.ets import { webview } from kit.ArkWeb; import { BusinessError } from kit.BasicServicesKit;Entry Component s…

Java面试八股之消息队列中推模式和拉模式分别有哪些使用场景

消息队列中推模式和拉模式分别有哪些使用场景 消息队列的推模式(Push)和拉模式(Pull)各有不同的使用场景和优缺点。下面我会详细介绍这两种模式及其适用场景: 推模式(Push) 特点:…

进哥在线shinyapps工具(自备)

Jingle’s shinyapps toolkit – 王进的个人网站 (jingege.wang) 一些常用生物信息学分析可视化apps,以及一些分子生物学分析工具(尴尬,一直忘记附上链接) Jingles toolkit 可以进行多种分析: 1. General plots示例…

putty中修改默认窗口大小和字体、字号

在WinSCP中调用putty,发现默认窗口太小,字号也很小,非常不友好。现在显示器都是1080p起步,所以很有必要修改之。 以中文版v0.70为例,方法: 1. 点击左上角图标 ,选择下拉菜单中的“修改设置”&…

Qt-信号和槽(8)

目录 信号的概念 Qt中的信号三要素 connect函数 connect的原型 connect的使用 信号函数和槽函数 参数匹配 close关闭槽函数 运行结果 第一个问题:怎么知道 手册使用 第二个问题,为什么可以直接传递函数指针 自定义槽函数 第一种自定义槽函…

Flask详细教程

1、Flask是什么? Flask是一个非常小的PythonWeb框架,被称为微型框架(类似Java的SpringBoot);只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制&a…

前端css动画transform多个属性值写法

X轴平移400px transform: translateX(400px); X轴平移400px并缩小0.5倍 transform: translateX(400px) scale(0.5); X轴平移400px并旋转45度 transform: translateX(400px) rotate(45d…

农产品智慧物流系统pf

TOC springboot537农产品智慧物流系统pf 第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行…

全新分支版本!微软推出Windows 11 Canary Build 27686版

已经很久没有看到 Windows 11 全新的分支版本了,今天微软发布 Windows 11 Canary 新版本,此次版本号已经转移到 Build 27xxx,首发版本为 Build 27686 版。 此次更新带来了多项改进,包括 Windows Sandbox 沙盒功能切换到 Microsof…

『 Linux 』利用UDP套接字实现简单群聊

文章目录 服务端通过传入命令处理实现远程命令执行使用Windows编辑UDP客户端实现Windows远程控制Linux接收套接字的其他信息UDP套接字简单群聊服务端UDP套接字简单群聊客户端运行测试及分离输入输出 参考代码 服务端通过传入命令处理实现远程命令执行 『 Linux 』利用UDP套接字…

led台灯对眼睛好不好?台灯太亮会影响视力吗?解锁护眼台灯小知识

中国的近视情况十分严峻,尤其在青少年群体中表现得更为突出。据统计,中国青少年的近视率高居世界第一,这主要与长时间的近距离用眼、过度使用电子产品以及户外活动时间减少等因素有关。优质的护眼台灯不仅能减少近视的发生率,还能…

创建一个简单的Vue3.0应用程序

1、Vue.createApp() 方法的介绍 每一个 Vue.js 的应用都需要创建一个应用程序的实例对象并挂载到指定 DOM 上。在 Vue3.0 中,创建一个应用程序实例的语法格式如下: Vue.createApp(App) createApp() 是一个全局 API,它接收一个根组件选项对…