C# winform 延时
时间: 2024-11-01 17:07:37 浏览: 29
C# Winform 自定义进度条ProgressBar
3星 · 编辑精心推荐
在C# WinForms中,如果你想让某个操作在一段时间后执行,可以使用`System.Threading.Tasks.Task.Delay`或者`Thread.Sleep`方法。这里有个例子,展示了如何使用`Task.Delay`创建一个延时任务:
```csharp
using System;
using System.Windows.Forms;
using System.Threading.Tasks;
private void btnExecuteDelay_Click(object sender, EventArgs e)
{
// 创建一个异步任务,并延迟5秒
Task.Run(() => {
Console.WriteLine("Start delay...");
DelayExecution(5000); // 自定义的延迟函数
Console.WriteLine("Delay finished.");
});
}
private void DelayExecution(int milliseconds)
{
// 使用Task.Delay等待指定毫秒数
Task.Delay(milliseconds).Wait();
}
```
在这个例子中,点击按钮后,程序会先打印"Start delay...",然后等待5秒,最后打印"Delay finished."。
如果你选择使用`Thread.Sleep`,代码会看起来像这样:
```csharp
private void btnExecuteDelay_Click(object sender, EventArgs e)
{
Console.WriteLine("Start delay...");
Thread.Sleep(5000); // 等待5秒
Console.WriteLine("Delay finished.");
}
```
但是请注意,`Thread.Sleep`会阻塞UI线程,可能导致界面失去响应,所以在WinForms中推荐使用异步方法如`Task.Delay`。
阅读全文