阅读量:0
在WinForm中处理异步错误可以通过以下方式实现:
- 使用try-catch块捕获异步方法中的异常,并在catch块中处理错误信息。
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); } }
- 使用Task的ContinueWith方法处理异步操作的错误。
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中可以优雅地处理异步操作中的错误,并提供用户友好的错误提示。