在WinForm中處理異步錯誤可以通過以下方式實現:
private async void btnAsync_Click(object sender, EventArgs e)
{
try
{
await Task.Run(() =>
{
// 異步操作代碼
throw new Exception("Async error");
});
}
catch (Exception ex)
{
MessageBox.Show("An error occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btnAsync_Click(object sender, EventArgs e)
{
Task.Run(() =>
{
// 異步操作代碼
throw new Exception("Async error");
}).ContinueWith((task) =>
{
if (task.IsFaulted)
{
MessageBox.Show("An error occurred: " + task.Exception.InnerException.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}, TaskScheduler.FromCurrentSynchronizationContext());
}
通過以上方式,在WinForm中可以優雅地處理異步操作中的錯誤,并提供用戶友好的錯誤提示。