在C# WinForms應用程序中,異步操作可能會引發異常。為了正確處理這些異常,您可以使用async
和await
關鍵字,并在try-catch
塊中捕獲異常。以下是一個示例,說明如何在WinForms應用程序中處理異步操作中的異常:
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsAsyncExceptionHandling
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private async void btnAsyncButton_Click(object sender, EventArgs e)
{
try
{
await Task.Run(() => LongRunningOperation());
MessageBox.Show("操作成功完成!");
}
catch (Exception ex)
{
MessageBox.Show($"發生異常: {ex.Message}");
}
}
private void LongRunningOperation()
{
// 模擬一個長時間運行的操作
System.Threading.Thread.Sleep(3000);
throw new InvalidOperationException("這是一個模擬的異常");
}
}
}
在這個示例中,我們有一個名為LongRunningOperation
的方法,它模擬了一個長時間運行的操作。當用戶點擊btnAsyncButton
按鈕時,我們使用Task.Run
來異步執行這個方法。在try-catch
塊中,我們等待異步操作完成,并捕獲可能發生的任何異常。如果發生異常,我們將在消息框中顯示異常消息。