csharp 能同时执行几个定时器
时间: 2023-08-07 16:07:09 浏览: 401
在 C# 中,可以同时执行多个定时器。你可以使用 `System.Timers.Timer` 或 `System.Threading.Timer` 类来创建和管理定时器。
以下是使用 `System.Timers.Timer` 的示例代码,同时执行两个定时器:
```csharp
using System;
using System.Timers;
class Program
{
static void Main()
{
// 创建并启动第一个定时器
Timer timer1 = new Timer(1000); // 1秒钟
timer1.Elapsed += Timer1Elapsed;
timer1.AutoReset = true;
timer1.Start();
// 创建并启动第二个定时器
Timer timer2 = new Timer(2000); // 2秒钟
timer2.Elapsed += Timer2Elapsed;
timer2.AutoReset = true;
timer2.Start();
// 防止程序退出
Console.ReadLine();
}
static void Timer1Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine("定时器1触发:" + DateTime.Now);
}
static void Timer2Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine("定时器2触发:" + DateTime.Now);
}
}
```
在上述示例中,我们创建了两个 `System.Timers.Timer` 类的实例 `timer1` 和 `timer2`。它们分别设置为每隔 1 秒钟和 2 秒钟触发一次。
我们分别为两个定时器的 `Elapsed` 事件注册了不同的处理方法 `Timer1Elapsed` 和 `Timer2Elapsed`。这些方法在定时器触发时会被调用。
最后,我们通过调用 `Start` 方法来启动两个定时器,并使用 `Console.ReadLine` 来阻止程序退出,以便观察定时器的触发情况。
当运行上述代码时,你将会看到两个定时器交替触发,并输出当前时间。
注意,上述代码是基于 `System.Timers.Timer` 的示例。如果使用 `System.Threading.Timer` 类,则使用方式有所不同,但基本思路是一样的。
阅读全文