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

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

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

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

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

1. System.Timers.Timer

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

示例代码:wem28资讯网——每日最新资讯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 是一个简单的轻量级定时器,适合用于多线程环境。它可以在指定的时间间隔后执行一个回调方法。wem28资讯网——每日最新资讯28at.com

示例代码:wem28资讯网——每日最新资讯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线程上执行回调。wem28资讯网——每日最新资讯28at.com

示例代码:wem28资讯网——每日最新资讯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上执行周期性更新。wem28资讯网——每日最新资讯28at.com

示例代码:wem28资讯网——每日最新资讯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更新。选择正确的定时器类型对于确保应用程序的稳定性和性能至关重要。wem28资讯网——每日最新资讯28at.com

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

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

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

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

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对“势”的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 签约井川里予、何丹彤,单视频点赞近千万,MCN黑马永恒文希快速崛起!

    来源:视听观察永恒文希传媒作为一家MCN公司,说起它的名字来,可能大家会觉得有点儿陌生,但是说出来下面一串的名字之后,或许大家就会感到震惊,原来这么多网红,都签约这家公司了。根
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
Top