C#隔一段时间执行一次
时间: 2024-10-06 07:01:21 浏览: 47
Winform基于多线程实现每隔1分钟执行一段代码
在C#中,如果你想让一段代码每隔一段时间自动执行一次,通常可以使用定时器(Timer)或者任务调度(Task Scheduler)。以下是两种常见的方式:
1. **Timer**:
使用`System.Timers.Timer`类可以在指定的时间间隔后执行某个委托。例如:
```csharp
Timer timer = new Timer(5000); // 5秒后触发
timer.Elapsed += (sender, e) => {
// 这里编写你要执行的代码
Console.WriteLine("定时任务执行");
};
timer.Start(); // 开始计时
```
当`Elapsed`事件发生时,你的代码会被执行。
2. **Task Scheduler** (.NET Core 3.0及以上):
如果在异步场景下,你可以使用`Task.Delay`配合`async`/`await`关键字,或者使用`System.Threading.Tasks.TaskScheduler`创建自定义调度任务:
```csharp
async Task MyScheduledTask()
{
await Task.Delay(5000); // 等待5秒
Console.WriteLine("任务执行");
}
var task = MyScheduledTask(); // 创建任务
task.ContinueWith(t => t.Result, TaskScheduler.FromCurrentSynchronizationContext()); // 每次延时后再次调度
```
注意,这里使用了`ContinueWith`来持续启动新任务。
阅读全文