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