首页 > 其他分享 >Winform 几种计时器的区别

Winform 几种计时器的区别

时间:2023-03-09 13:24:18浏览次数:38  
标签:定时器 System Timer 几种 计时器 线程 执行 精度 Winform

1.System.Windows.Forms.Timer:
实现机制:使用消息循环机制实现,即通过向消息队列中添加 WM_TIMER 消息实现定时器的触发。

精度:精度一般较低,定时器的最小间隔为 15 毫秒,不够精确。

执行方式:定时器的回调函数在 UI 线程上执行,如果回调函数执行时间过长,可能会影响 UI 响应性。

2.System.Threading.Timer:
实现机制:使用线程池和操作系统定时器实现,定时器触发时会创建新线程执行定时器回调函数。

精度:精度较高,可以通过调整定时器的构造函数参数设置定时器的精度和间隔。

执行方式:定时器回调函数在线程池中执行,可以处理复杂的计算和操作,但需要注意线程安全问题。

3.System.Timers.Timer:
实现机制:使用操作系统定时器实现,与 System.Threading.Timer 不同,使用 System.Timers.Timer 创建的定时器是基于线程池的,可以并发执行多个任务。

精度:精度较高,可以通过调整定时器的构造函数参数设置定时器的精度和间隔。

执行方式:定时器回调函数在线程池中执行,可以处理复杂的计算和操作,但需要注意线程安全问题。

4.System.Diagnostics.Stopwatch:
实现机制:使用高精度计时器实现,通过调用 QueryPerformanceCounter 函数获取时间戳来计算时间间隔。

精度:精度非常高,可以测量微秒级别的时间间隔。

执行方式:没有定时器事件触发,需要手动调用 Start 和 Stop 方法启动和停止计时器。

总的来说,以上定时器的选择应根据具体的应用需求和场景来进行选择和使用。如果只需要简单的定时器功能,可以使用 System.Windows.Forms.Timer,如果需要高精度的定时器功能,可以使用 System.Threading.Timer 或 System.Timers.Timer。如果需要测量代码执行时间,可以使用 System.Diagnostics.Stopwatch。

标签:定时器,System,Timer,几种,计时器,线程,执行,精度,Winform
From: https://www.cnblogs.com/whr2071/p/17198004.html

相关文章

  • 【WinForm】 自学笔记一:项目创建以及基本操作
    这两年C#客户端开发比较火,有很多WinForm以及WPF的开发需求。为了跟上时代发展的步伐,开始学习相关的知识。笔记内容以个人实际学习情况为主,记录基本情况,可能不够详细......
  • 记录--服务端推送到Web前端有哪几种方式?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助这个问题?这个问题一般会出现在面试题里面,然后回答一些诸如轮询、WebSocket之类的答案。当然,实际开发中,也......
  • JS 中的计时器能做到精确计时吗?为什么?
    参考答案:不⾏,因为:计算机硬件没有原⼦钟,⽆法做到精确计时操作系统的计时函数本身就有少量偏差,由于JS的计时器最终调⽤的是操作系统的函数,也就携带了这些偏差按照W3C......
  • VSCode调试js代码的几种方式
    背景  在leetcode刷题时需要调试js代码  代码写在.js文件中 方式一node.js  安装node.js  配置launch.json      左侧【运行和调试】,【F5】启动调......
  • 界面组件DevExpress WinForms v22.2 - 升级对HTML & CSS的支持
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office......
  • 关于sklearn,监督学习几种模型的对比
    喜欢这篇文章的话,就点个关注吧,或者关注一下我的公众号也可以,会持续分享高质量Python文章,以及其它相关内容。:点击查看公众号123456789101112131415......
  • C# Thread开启线程的几种方式
    C#Thread开启线程的几种方式2023-01-2308:20·opendotnet概述无论学习那门编程语言,多线程都是逃不掉的一个坎。为了提升程序整体的运行效率,我们一般都会把比较耗时......
  • SunnyUI 新版 V3.3.3 发布啦!C# WinForm 开源控件库
    SunnyUI新版V3.3.3发布啦!C#WinForm开源控件库来源:投稿作者: yhuse2023-03-0713:30:00 0 帮助文档: https://gitee.com/yhuse/SunnyUI......
  • 【MRTK】HoloLens 项目部署的几种方法
    前言如果在项目部署过程中遇到报错Unity.IL2CPP.Building.BuilderFailedException:Lump_libil2cpp_vm.cpp,可以查看我之前的文章【MRTK】解决Unity.IL2CPP.Building.Bu......
  • Pytorch中norm(几种范数norm的详细介绍)
    1.范数(norm)的简单介绍概念:距离的定义是一个宽泛的概念,只要满足非负,自反,三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法......