.NET Core Web Api 两个定时器怎么设置
时间: 2024-02-06 07:04:44 浏览: 73
在 .NET Core Web API 中,可以使用 `System.Threading.Timer` 类来创建定时器。以下是设置两个定时器的示例代码:
```csharp
using System.Threading;
public class MyController : ControllerBase
{
private Timer _timer1;
private Timer _timer2;
public MyController()
{
// 创建定时器1,每隔 5 秒执行一次
_timer1 = new Timer(DoSomething1, null, TimeSpan.Zero, TimeSpan.FromSeconds(5));
// 创建定时器2,每隔 10 秒执行一次
_timer2 = new Timer(DoSomething2, null, TimeSpan.Zero, TimeSpan.FromSeconds(10));
}
private void DoSomething1(object state)
{
// 定时器1执行的任务
}
private void DoSomething2(object state)
{
// 定时器2执行的任务
}
// 在控制器被销毁时,释放定时器资源
public override void Dispose()
{
_timer1.Dispose();
_timer2.Dispose();
base.Dispose();
}
}
```
在上面的代码中,我们在控制器的构造函数中创建了两个定时器 `_timer1` 和 `_timer2`,分别执行 `DoSomething1` 和 `DoSomething2` 方法。定时器的第一个参数是回调方法,第二个参数是传递给回调方法的参数。第三个参数指定定时器第一次执行的延迟时间,第四个参数指定定时器执行的间隔时间。
需要注意的是,在控制器被销毁时,需要释放定时器资源,否则会造成内存泄漏。我们可以在控制器的 `Dispose` 方法中释放定时器资源,例如上面的示例代码中所示。
阅读全文