c#使用new System.Threading.Timer
时间: 2024-09-20 07:16:57 浏览: 43
C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
在C#中,`System.Threading.Timer`是一个用于异步定时任务的类。它允许你在给定的时间间隔后执行回调函数,或者在特定的次数之后停止计时。使用`Timer`的基本步骤如下:
1. 创建`Timer`实例:
```csharp
using System.Threading;
Timer timer = new Timer(
callbackMethod, // 回调函数引用
state, // 可选的用户自定义状态
dueTime, // 首次触发的时间(Ticks 或 TimeSpan)
period); // 定时周期(Ticks 或 TimeSpan)
```
- `callbackMethod`: 需要调用的委托(Delegate),通常是实现了`Action`或`Func`类型的匿名方法或实例方法。
- `state`: 可选的上下文数据,传递给回调方法。
- `dueTime` 和 `period` 分别表示首次执行的时间点和后续每次执行之间的间隔。
2. 定义回调函数:
```csharp
void MyCallback(object state)
{
// 回调函数体,可以访问传入的状态以及执行需要的任务
}
```
3. 启动定时器并处理异常:
```csharp
try
{
timer.Change(dueTime, period); // 设置定时器属性
timer.Start(); // 开始定时器
}
catch (Exception ex)
{
Console.WriteLine("Error starting timer: " + ex.Message);
}
```
4. 当不再需要定时器时,记得停止它:
```csharp
timer.Dispose(); // 调用Dispose()来释放资源
```
阅读全文