c#使用委托创建三个不同时间的thread 定时器
时间: 2024-10-20 21:04:57 浏览: 6
在 C# 中,可以利用 `System.Threading.Timer` 类和委托(Delegate)来创建三个不同时间间隔的线程(Thread)。`Timer` 是一种异步定时器,可以在指定的时间间隔后执行某个方法。以下是创建三个不同时间间隔的 `Timer` 示例:
```csharp
using System;
using System.Threading;
class Program
{
private static void TimerCallback(object state)
{
Console.WriteLine($"Timer triggered after {((Timer)state).Interval}ms");
}
public static void Main(string[] args)
{
// 创建第一个5秒后触发的Timer
Timer t1 = new Timer(TimerCallback, null, TimeSpan.FromSeconds(5), TimeSpan.Zero);
// 创建第二个10秒后触发的Timer
Timer t2 = new Timer(TimerCallback, null, TimeSpan.FromSeconds(10), TimeSpan.Zero);
// 创建第三个20秒后触发的Timer
Timer t3 = new Timer(TimerCallback, null, TimeSpan.FromSeconds(20), TimeSpan.Zero);
Console.WriteLine("Starting timers...");
// 启动所有Timer
t1.Change(TimeSpan.Zero, Timeout.InfiniteTimeSpan); // 永久运行
t2.Change(TimeSpan.Zero, Timeout.InfiniteTimeSpan);
t3.Change(TimeSpan.Zero, Timeout.InfiniteTimeSpan);
// 等待程序结束
Console.ReadLine();
}
}
```
在这个例子中,我们首先声明了一个名为 `TimerCallback` 的静态方法作为委托,然后分别创建了三个 `Timer` 对象,每个对象都设置了不同的延迟时间和永久运行(`Timeout.InfiniteTimeSpan`)。当 `Timer` 到达设定的时间后,会自动调用 `TimerCallback` 方法。
阅读全文