Pav*_*nin 7 .net .net-4.0 task-parallel-library .net-4.5
我们想切换到.net 4.5,因为它提供了许多改进.
但是......有时我发现了一些关于框架中不是微不足道的变化的棘手细节.
让我们将TPL未观察到的异常处理视为一个例子:
如果您不等待传播异常的任务或访问其Exception属性,则在对任务进行垃圾回收时,将根据.NET异常策略升级异常.(注意,"例外政策"一词没有任何联系或澄清)
嗯,这似乎是.Net v.4.0中的行为
但Stephen Toub 告诉我们更多:
为了使开发人员更容易编写基于Tasks的异步代码,.NET 4.5更改了未观察到的异常的默认异常行为.虽然未观察到的异常仍会导致引发UnobservedTaskException事件(不会这样做会发生重大变化),默认情况下进程不会崩溃.相反,无论事件处理程序是否观察到异常,异常将在引发事件后最终被吃掉.但是,可以配置此行为.可以使用新的CLR配置标志恢复到.NET 4的崩溃行为.
请注意,此更改并不意味着开发人员应该忽略忽略未处理的异常...它只是意味着运行时比使用它更宽容成为.
这是一个很大的惊喜.考虑到文档中没有更新.
所以,我想知道在.Net v4.5中发生的其他"无声"变化我更了解
.请分享您的知识.
PS这里的单词"沉默"是指Wat的新文章甚至官方文档中难以得知的变化.
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |