我是新手,我希望你可以帮我解决这个问题。
这是代码:
Task tast = null;
try
{
tast = new Task(() =>
{
...
});
tast.Start();
if (tast != null)
{
tast.Wait();
if (tast.Exception != null)
{
// catch exception here
}
}
}
catch (Exception err)
{
// not here?
}
异常是在catch语句中捕获但不在task.Exception!= null。
中为什么会这样?任务应该在自己的主题上。
我宁愿让任务知道异常,然后询问是否异常!= null。
我该如何做到这一点?
我很抱歉,如果这是重复的话。请在评论中告诉我,我将删除此问题。
答案 0 :(得分:3)
您正在调用Task.Wait()
- 如果任务出现故障,则会抛出异常。如果你没有打电话给Task.Wait()
,你就不会在你的帖子中得到例外......当然,你也不会在它结束时发现。您可以通过各种方式等待等待它完成(例如附加延续任务并等待 完成),但最简单的方法就是调用{带有catch块的{1}}:
Task.Wait()