在WinForm中处理异步任务可以使用Task类和async/await关键字来实现。以下是一个示例代码:
private async void button1_Click(object sender, EventArgs e)
{
// 开始异步任务
await Task.Run(() =>
{
// 模拟耗时操作
Thread.Sleep(5000);
// 更新UI控件
this.Invoke((MethodInvoker)delegate
{
label1.Text = "任务已完成";
});
});
}
在上面的示例中,当用户点击按钮时会触发button1_Click事件,然后启动一个异步任务,该任务会在另一个线程中执行耗时操作,然后通过Invoke方法更新UI控件。
需要注意的是,异步任务处理需要遵循UI线程和非UI线程的调度规则,确保在非UI线程中执行耗时操作,然后使用Invoke方法在UI线程更新UI控件。