C# 定时器和计时器

C# 定时器和计时器

C#实现定时器使用 System.Timers.Timer 来实现定时间隔执行指定方法

C# 属性

  • Elapsed 获取当前实例测量得出的总运行时间。
      public TimeSpan Elapsed { get; }
    
  • AutoReset 获取或设置一个布尔值,该值指示 Timer 是否应只引发一次 Elapsed 事件,不重复false 或重复 (true)
      public bool AutoReset { get; set; }
    
  • Interval 获取或设置引发 Elapsed 事件的间隔(以毫秒为单位)
      public double Interval { get; set; }
    

C# 方法

  • Start 通过将 Enabled 设置为 true 开始引发 Elapsed 事件
      public void Start ();
    
  • Stop 通过将 Enabled 设置为 false 停止引发 Elapsed 事件
      public void Stop ();
    
  • Close 释放由 Timer 占用的资源
      public void Close ();
    
  • Dispose 释放由当前 Timer 使用的所有资源
      protected override void Dispose (bool disposing);
    

定义定时器

### 定义属性
private System.Timers.Timer timerss = null;

开启定时器

  ### OnMeetingMemberOwnTimedEvent 是要执行的方法
  timerss = new System.Timers.Timer();
  timerss.Elapsed += new ElapsedEventHandler(demoFunction);
  timerss.AutoReset = true;
  timerss.Interval = 5000;
  timerss.Start();

关闭定时器

  ### 停止定时器
  timerss.Stop();
  timerss.Close();
  timerss.Dispose();
  timerss = null;

定时器执行的方法

private static void  demoFunction(object source, ElapsedEventArgs e){
  DateTime dateTime = e.SignalTime;
  int hour = dateTime.Hour;
  int minute = dateTime.Minute;
  if (hour == 1 && minute == 00)
  {
      Console.WriteLine("hour: " + hour + ",minute: " + minute);
  }
}

参考连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中,你可以使用以下几种方法来实现定时器功能: 1. System.Timers.Timer:这是一个基于线程的定时器,可以在指定的时间间隔内重复执行指定的代码。你可以设置 Interval 属性来指定时间间隔,并通过 Elapsed 事件来处理计时器事件。 ```csharp using System; using System.Timers; public class TimerExample { private static Timer timer; public static void Main() { timer = new Timer(); timer.Interval = 1000; // 设置时间间隔为1秒 timer.Elapsed += TimerElapsed; // 绑定事件处理程序 timer.Enabled = true; // 启动计时器 Console.WriteLine("Press Enter to stop the timer."); Console.ReadLine(); timer.Enabled = false; // 停止计时器 } private static void TimerElapsed(object sender, ElapsedEventArgs e) { Console.WriteLine("Timer elapsed at {0}", e.SignalTime); } } ``` 2. System.Threading.Timer:这是一个基于线程池的定时器,也可以在指定的时间间隔内重复执行指定的代码。你可以使用 Change 方法来设置时间间隔,并通过 TimerCallback 委托来处理计时器事件。 ```csharp using System; using System.Threading; public class TimerExample { private static Timer timer; public static void Main() { TimerCallback callback = new TimerCallback(TimerElapsed); timer = new Timer(callback, null, 0, 1000); // 设置时间间隔为1秒 Console.WriteLine("Press Enter to stop the timer."); Console.ReadLine(); timer.Dispose(); // 停止计时器 } private static void TimerElapsed(object state) { Console.WriteLine("Timer elapsed at {0}", DateTime.Now); } } ``` 3. System.Threading.Tasks.Task.Delay:这是一种基于异步任务的延迟执行方法,可以在指定的时间间隔后执行指定的代码。 ```csharp using System; using System.Threading.Tasks; public class TimerExample { public static async Task Main() { Console.WriteLine("Press Enter to start the timer."); Console.ReadLine(); while (true) { Console.WriteLine("Timer elapsed at {0}", DateTime.Now); await Task.Delay(1000); // 设置时间间隔为1秒 } } } ``` 这些是在 C# 中实现定时器功能的几种常用方法。你可以根据自己的需求选择适合的方法来实现定时器功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值