栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

等待任务或访问其异常属性未观察到任务的异常。结果,未观察到的异常是

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

等待任务或访问其异常属性未观察到任务的异常。结果,未观察到的异常是

如果创建一个Task,并且您从未调用

task.Wait()
或尝试检索a的结果,那么
Task<T>
当该任务由垃圾收集器收集时,它将在完成过程中关闭您的应用程序。有关详细信息,请参见TPL中 MSDN上有关异常处理的页面。

最好的选择是“处理”异常。这可以通过延续来完成-
您可以将延续附加到任务,并记录/吞咽/等发生的异常。这提供了记录任务异常的干净方法,并且可以编写为简单的扩展方法,即:

public static void LogExceptions(this Task task){    task.ContinueWith( t =>    {         var aggException = t.Exception.Flatten();         foreach(var exception in aggException.InnerExceptions)  LogException(exception);    },     TaskContinuationOptions.OnlyOnFaulted);}

通过上述操作,您可以通过以下方式阻止任何任务拆解应用程序并对其进行记录:

Task.Factory.StartNew( () =>    {        // Do your work...   }).LogExceptions();

或者,您可以订阅TaskScheduler.UnobservedTaskException并在那里进行处理。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398888.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号