c#使用委托创建三个不同时间启动的thread定时器
时间: 2024-10-20 14:04:52 浏览: 7
在C#中,你可以通过`System.Threading.Timer`类结合委托(Delegate)来创建三个不同时间启动的线程定时器。首先,你需要定义一个委托,这个委托将用于执行你要在特定时间运行的操作。然后,你可以创建多个`Timer`实例,并设置它们的延迟时间和回调方法。
下面是一个简单的示例:
```csharp
using System;
using System.Threading;
// 定义一个委托,代表需要在定时器上执行的函数
public delegate void MyAction();
class Program
{
static void Main(string[] args)
{
// 第一个定时器,延迟5秒后执行
Timer firstTimer = new Timer(MyActionToRun, null, TimeSpan.FromSeconds(5), Timeout.Infinite);
// 第二个定时器,延迟10秒后执行
Timer secondTimer = new Timer(MyActionToRun, null, TimeSpan.FromSeconds(10), Timeout.Infinite);
// 第三个定时器,延迟15秒后执行
Timer thirdTimer = new Timer(MyActionToRun, null, TimeSpan.FromSeconds(15), Timeout.Infinite);
Console.WriteLine("Timers have been set up. Press any key to stop them.");
Console.ReadKey();
// 关闭所有定时器
firstTimer.Change(Timeout.Infinite, Timeout.Infinite);
secondTimer.Change(Timeout.Infinite, Timeout.Infinite);
thirdTimer.Change(Timeout.Infinite, Timeout.Infinite);
}
// 这是你的回调方法,它会被`Timer`在指定时间调用
private static void MyActionToRun(object state)
{
Console.WriteLine($"Timer is running after {state as TimeSpan} seconds.");
}
}
```
在这个例子中,当你按下任意键时,所有定时器都会停止。注意,`Timeout.Infinite`表示无限期,如果没有手动取消,定时器会一直运行到程序结束。
阅读全文