首页 > 其他 > 详细

关于async & await(TAP)异步模型的异常捕获

时间:2015-02-06 06:59:38      阅读:466      评论:0      收藏:0      [点我收藏+]

在TAP之前,若要捕获线程中Task的异常,通常有两种办法:

1、阻塞:线程开始后,在适当的时机,调用 wait,或waitAll方法。

2、非阻塞(推荐):在建立任务的时候,写该task的continueWith方法,在该方法中捕获异常。

对于TAP时代,我们若要捕获一个带有asyn关键字的Task任务,用continueWith方法会捕获失败。注册全局的静态方法也不行。

阻塞式:和TAP之前一致。

非阻塞式:用

await Task.WhenAll()

await t.Wait()

await t.result等皆可。

  前提是要有await关键字,这样看似不错,省了continueWith,但是问题是await只允许在asyn标志的函数中去执行,这样会给你的程序带来传染性问题。

由此可以这样说,await关键字其实和continueWith的作用类似,只是简化了写法,让程序看的更整齐,但这样所付出的代价是不是有点大?

关于async & await(TAP)异步模型的异常捕获

原文:http://www.cnblogs.com/fej121/p/4276251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!