C#中四种定时器的用法详解

 更新时间:2024年04月17日 10:27:27   作者:※※冰馨※※  
日常项目开发中,很多时候都需要用到定时器来处理一些问题,那么c#中各种定时器应该怎么用呢?下面来简单介绍下C#中4种定时器的使用方法说明,感兴趣的朋友可以参考下

C#四种定时器的用法

  • 1. System.Windows.Forms.Timer
  • 2. System.Threading.Timer
  • 3. System.Timers.Timer
  • 4. System.Windows.Threading.DispatcherTimer(WPF中的定时器)

1. System.Windows.Forms.Timer

使用方法如下:

System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();//创建定时器
timer.Tick += new EventHandler(timer1_Tick);//事件处理
timer.Enabled = true;//设置启用定时器
timer.Interval = 1000;//执行时间
timer.Start();//开启定时器
/// <summary> 
/// 定时器事件处理 
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param> 
private void timer1_Tick(object sender, EventArgs e)
{
      timer.Stop();//停止定时器
      timer.Tick -= new EventHandler(timer1_Tick);//取消事件
      timer.Enabled = false;//设置禁用定时器
}

2. System.Threading.Timer

使用方法如下:

System.Threading.Timer timer;
timer = new System.Threading.Timer(new TimerCallback(timerCall), this, 3000, 0);//创建定时器
/// <summary>
/// 事件处理
/// </summary>
/// <param name="obj"></param> 
 
private void timerCall(object obj) 
{
      timer.Dispose();//释放定时器
} 

3. System.Timers.Timer

使用方法如下:

System.Timers.Timer timer = new System.Timers.Timer(1000);//创建定时器,设置间隔时间为1000毫秒;
timer.Elapsed += new System.Timers.ElapsedEventHandler(theout);  //到达时间的时候执行事件;
timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); 
timer.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它,
timer.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
 
/// <summary>
///执行事件
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
public void theout(object source, System.Timers.ElapsedEventArgs e)
{ 
      timer.Elapsed -= new System.Timers.ElapsedEventHandler(theout);  //取消执行事件;  
      timer.Enabled = false;//禁用 
      timer.Stop();//停止
}

4. System.Windows.Threading.DispatcherTimer(WPF中的定时器)

使用方法如下:

private static System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();//创建定时器
timer.Tick += new EventHandler(timer_out);//执行事件
timer.Interval = new TimeSpan(0, 0, 0, 1);//1s执行
timer.IsEnabled = true;//启用
timer.Start();//开启
 
/// <summary>
///执行事件
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
public static void timer_out(object sender, EventArgs e)
{
     timer.Tick -= new EventHandler(timer_out);//取消执行事件;   
     timer.IsEnabled = false;//禁用 
     timer.Stop();//停止
}

注意事项

  • 1.DispatcherTimer是运行在UI线程上的,其好处是可以在定时事件中修改UI元素,其它三种定时器是运行在独立的线程上的,与UI线程无关。
  • 2.如果需要修改UI控件,则必须委托给调度器this.Dispatcher进行,不然的话会提示界面资源被其他线程所拥有而无法更新界面。

以上就是C#中四种定时器的用法详解的详细内容,更多关于C#定时器用法的资料请关注脚本之家其它相关文章!

相关文章

  • C#使用读写锁三行代码简单解决多线程并发的问题

    C#使用读写锁三行代码简单解决多线程并发的问题

    本文主要介绍了C#使用读写锁三行代码简单解决多线程并发写入文件时提示“文件正在由另一进程使用,因此该进程无法访问此文件”的问题。需要的朋友可以参考借鉴
    2016-12-12
  • C#中static关键字的具体使用

    C#中static关键字的具体使用

    本篇文章详细介绍了C#中static关键字的含义、用途、与其他关键字的关系以及它在不同作用域中的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • C#实现小截屏软件功能

    C#实现小截屏软件功能

    这篇文章主要为大家详细介绍了C#实现截图软件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#中out与ref作用区别示例分析

    C#中out与ref作用区别示例分析

    这篇文章主要为大家介绍了C#中out与ref作用区别示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • c# 屏蔽快捷键的实现示例

    c# 屏蔽快捷键的实现示例

    这篇文章主要介绍了c# 屏蔽快捷键的实现示例,帮助大家更好的理解和利用c#进行桌面开发,感兴趣的朋友可以了解下
    2021-03-03
  • WinForm特效之桌面上的遮罩层实现方法

    WinForm特效之桌面上的遮罩层实现方法

    这篇文章主要介绍了WinForm特效之桌面上的遮罩层实现方法,是一个非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • C#实现创建桌面快捷方式与添加网页到收藏夹的示例

    C#实现创建桌面快捷方式与添加网页到收藏夹的示例

    本文是介绍了c#通过纯代码创建快捷方式与添加网页到收藏夹,非常具有实用价值,有需要的朋友可以来了解一下。
    2016-10-10
  • 详解c# SpinWait

    详解c# SpinWait

    这篇文章主要介绍了c# SpinWait的相关资料,帮助大家更好的理解和学习c# 编程,感兴趣的朋友可以了解下
    2020-10-10
  • C#使用Region对图形区域构造和填充的方法

    C#使用Region对图形区域构造和填充的方法

    这篇文章主要介绍了C#使用Region对图形区域构造和填充的方法,实例分析了Region类图形操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#端口扫描器的编写方法

    C#端口扫描器的编写方法

    这篇文章主要为大家详细介绍了C#端口扫描器的编写方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论