当前位置: 首页 > 编程语言 > C#

任务中抛出异常——“wait”与wait()分享

时间:2023-04-10 18:47:38 C#

任务中抛出异常——“wait”与wait()staticasyncvoidMain(string[]args){Taskt=newTask(()=>{thrownewException();});尝试{t.Start();t.等待();}catch(AggregateExceptione){//在等待任务时,抛出AggregateException。}尝试{t.Start();等待;}catch(Exceptione){//当等待任务时,异常本身被抛出。//在这种情况下是一个常规异常。在TPL中,当Task中抛出异常时,它被AggregateException包裹。但是使用await关键字时不会发生同样的情况。这种行为的解释是什么?目标是使其看起来/行为与同步版本相同。JonSkeet在他的Eduasync系列中解释得很好,尤其是这篇文章:http://codeblog.jonskeet.uk/2011/06/22/eduasync-part-11-more-sophisticated-but-lossy-exception-handling/AggregateExceptionis在TPL中使用,因为在等待操作中可以有多个任务(任务可以附加子任务),所以很多任务都可以抛出异常。请参阅子任务部分中的异常https://msdn.microsoft.com/ru-ru/library/dd997417(v=vs.110).aspxawait您始终只有一项任务另请参阅https://msdn。microsoft.com/ru-ru/library/dd997415(v=vs.110).aspx以上是C#学习教程:在任务中抛出异常——“wait”和wait()分享全部内容,如果是对大家有帮助有用且需要了解更多C#学习教程的,希望大家多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: