Winform c# 异步多线程定时执行
时间: 2023-07-05 17:14:28 浏览: 234
c#中Winform实现多线程异步更新UI(进度及状态信息)
5星 · 资源好评率100%
要实现Winform C#异步多线程定时执行,你可以使用System.Threading.Timer类和System.Threading.Tasks.Task类。以下是一个简单的示例代码:
```
// 创建一个Timer对象
Timer timer = new Timer(TimerCallback, null, 0, 1000);
// 创建一个异步任务
Task task = Task.Factory.StartNew(DoWork);
// 定时器回调函数
private void TimerCallback(object state)
{
// 在UI线程上更新UI控件
this.Invoke((MethodInvoker)delegate {
// 更新UI控件
label1.Text = DateTime.Now.ToString();
});
}
// 异步任务执行的方法
private void DoWork()
{
while (true)
{
// 执行异步任务
// ...
// 休眠1秒钟
Thread.Sleep(1000);
}
}
```
在这个示例中,我们创建了一个Timer对象,每1秒钟执行一次TimerCallback方法,在TimerCallback方法中更新UI控件。同时,我们也创建了一个异步任务DoWork方法,这个方法会在另一个线程中执行一些耗时的操作。注意,在更新UI控件时,我们使用了Invoke方法,这是因为UI控件只能在UI线程上更新。
阅读全文