温馨提示×

如何在WinForm中处理异步任务

小樊
94
2024-08-21 12:09:27
栏目: 智能运维

在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控件。

0