我有一个在后台运行任务的扩展方法,并将其放入 try-catch block 中以处理它引发的任何异常。问题是 Visual Studio 总是停止在我的代码的重新抛出部分,我不知道为什么。
try {
task.RunInBackground();
} catch (Exception e) {
// do something
}
最佳答案
您需要像这样等待任务:
try {
await task.RunInBackground();
} catch (Exception e) {
// do something
}
尽可能避免使用 async void。删除async void
,将其替换为async Task
,如下所示:
public static async Task RunInBackground(this Task task) {
// ....
}
如果您需要知道为什么要避免 async void,请检查此 link来自msdn。
关于c# - 未捕获重新抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36803928/