c# .net 4.0 异步方法创建多个定时器
时间: 2024-10-23 19:20:22 浏览: 17
在 C#/.NET 4.0 中,异步方法通常用于处理那些需要长时间运行或非阻塞的任务,例如定时任务。如果你想在异步方法中创建多个定时器,你可以使用 `System.Timers.Timer` 或 `System.Threading.Timer` 类,因为它们支持异步回调。
以下是使用 `System.Timers.Timer` 的示例:
```csharp
using System;
using System.Threading.Tasks;
public async Task ProcessTimers()
{
Timer timer1 = new Timer(5000); // 创建第一个定时器,间隔5秒
timer1.Elapsed += (sender, e) => Console.WriteLine("Timer 1 elapsed");
Timer timer2 = new Timer(10000); // 创建第二个定时器,间隔10秒
timer2.Elapsed += (sender, e) => Console.WriteLine("Timer 2 elapsed");
await Task.Delay(2000); // 等待2秒,让主线程继续
timer1.Start(); // 启动第一个定时器
timer2.Change(0, -1); // 变更第二个定时器的开始时间,立即触发
Console.WriteLine("Main task started processing...");
}
```
在这个例子中,我们首先创建了两个定时器,然后通过 `Task.Delay` 来让主线程在等待期间执行其他任务。接着,我们启动第一个定时器并改变第二个定时器的设置使其立即触发。
如果你想要更高级的控制和更好的性能,可以考虑使用 `System.Threading.Timer` 或者使用 `async` 和 `await` 关键字配合 `Task.Run`,但请注意这需要在适当的上下文中创建任务。
阅读全文