当前位置:首页 > 科技  > 软件

.NET中的定时器:种类、用途与示例代码

来源: 责编: 时间:2024-06-05 17:46:41 87观看
导读在.NET框架中,定时器是执行定时任务或周期性任务的关键组件。根据应用场景和需求,.NET提供了多种定时器供开发者选择。本文将介绍.NET中的主要定时器类型,并提供相应的示例代码。1. System.Timers.TimerSystem.Timers.Ti

在.NET框架中,定时器是执行定时任务或周期性任务的关键组件。根据应用场景和需求,.NET提供了多种定时器供开发者选择。本文将介绍.NET中的主要定时器类型,并提供相应的示例代码。DAy28资讯网——每日最新资讯28at.com

DAy28资讯网——每日最新资讯28at.com

1. System.Timers.Timer

System.Timers.Timer 是一个在指定间隔重复执行的服务器级定时器。它非常适合在后台任务中使用,如定期执行某些操作。DAy28资讯网——每日最新资讯28at.com

示例代码:DAy28资讯网——每日最新资讯28at.com

using System;using System.Timers;public class Example{    private static Timer aTimer;    public static void Main()    {        // 创建一个定时器,并设置其间隔为2000毫秒(2秒)。        aTimer = new Timer(2000);        // Hook up the Elapsed event for the timer.         aTimer.Elapsed += OnTimedEvent;        // 设置是否自动重置并启动定时器        aTimer.AutoReset = true;        aTimer.Enabled = true;        Console.WriteLine("按 Enter 键退出程序...");        Console.ReadLine();    }    private static void OnTimedEvent(Object source, ElapsedEventArgs e)    {        Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}", e.SignalTime);    }}

2. System.Threading.Timer

System.Threading.Timer 是一个简单的轻量级定时器,适合用于多线程环境。它可以在指定的时间间隔后执行一个回调方法。DAy28资讯网——每日最新资讯28at.com

示例代码:DAy28资讯网——每日最新资讯28at.com

using System;using System.Threading;public class Example{    public static void Main()    {        // 创建一个定时器,当两秒后触发,之后每两秒触发一次        Timer timer = new Timer(TimerCallback, null, 2000, 2000);        Console.WriteLine("按 Enter 键退出程序...");        Console.ReadLine();    }    private static void TimerCallback(Object o)    {        Console.WriteLine("Timer callback executed at {0}", DateTime.Now);    }}

3. System.Windows.Forms.Timer (Windows Forms 应用)

如果你正在开发一个Windows Forms应用程序,System.Windows.Forms.Timer 是一个很好的选择。它基于Windows消息队列,并且只在UI线程上执行回调。DAy28资讯网——每日最新资讯28at.com

示例代码:DAy28资讯网——每日最新资讯28at.com

using System;using System.Windows.Forms;public class Form1 : Form{    private Timer myTimer;    public Form1()    {        myTimer = new Timer();        myTimer.Interval = 2000; // 设置定时器间隔为2000毫秒(2秒)        myTimer.Tick += new EventHandler(myTimer_Tick); // 绑定Tick事件处理函数        myTimer.Start(); // 启动定时器    }    private void myTimer_Tick(object sender, EventArgs e)    {        MessageBox.Show("Timer ticked at " + DateTime.Now);    }}

4. DispatcherTimer (WPF 或 Silverlight 应用)

对于WPF或Silverlight应用程序,DispatcherTimer 是一个基于UI线程的定时器,非常适合用于在UI上执行周期性更新。DAy28资讯网——每日最新资讯28at.com

示例代码:DAy28资讯网——每日最新资讯28at.com

using System;using System.Windows.Threading;public class MainWindowViewModel{    private DispatcherTimer dispatcherTimer;    public MainWindowViewModel()    {        dispatcherTimer = new DispatcherTimer();        dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);        dispatcherTimer.Interval = new TimeSpan(0, 0, 2); // 设置定时器间隔为2秒        dispatcherTimer.Start();    }    private void dispatcherTimer_Tick(object sender, EventArgs e)    {        MessageBox.Show("DispatcherTimer ticked at " + DateTime.Now);    }}

总结

在.NET中,有多种定时器可供选择,具体取决于你的应用场景和需求。System.Timers.Timer 和 System.Threading.Timer 适用于后台任务和多线程环境,而 System.Windows.Forms.Timer 和 DispatcherTimer 则更适合于UI更新。选择正确的定时器类型对于确保应用程序的稳定性和性能至关重要。DAy28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-92179-0.html.NET中的定时器:种类、用途与示例代码

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 我们如何停止使用 Git Rebase

下一篇: Python 微服务架构的 15 个设计模式

标签:
  • 热门焦点
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 之家push系统迭代之路

    之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 从零到英雄:高并发与性能优化的神奇之旅

    从零到英雄:高并发与性能优化的神奇之旅

    作者 | 波哥审校 | 重楼作为公司的架构师或者程序员,你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢?笔者在出道那会为此是吃尽了苦头的,不过也得
  • 破圈是B站头上的紧箍咒

    破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 腾讯盖楼,字节拆墙

    腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之“想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!”曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘 价格与性能兼具

    SN570 NVMe SSD固态硬盘是西部数据发布的最新一代WD Blue系列的固态硬盘,不仅闪存技术更为精进,性能也得到了进一步的跃升。WD Blue SN570 NVMe SSD的包装外
  • 电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会为了更好地让参展观众真正感受到智能家居的绝妙之处,海尔智家的程传岭先生同样介绍了展会上海尔智家的模拟500平大平层,还原生活空间沉浸式体验。程传
Top
Baidu
map