在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中可以优雅地处理异步操作中的错误,并提供用户友好的错误提示。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:C#中如何优雅地处理Response错误