我们希望切换到。net 4.5,因为它提供了许多改进。
但是…有时我发现一些棘手的细节在框架中不是微不足道的变化。
让我们以TPL未观察到的异常处理为例:
如果您不等待传播异常的任务,或访问的Exception属性,则根据. net异常策略,当任务被垃圾回收时。(注意,没有链接或澄清术语"异常策略")
嗯,这似乎是在。net v.4.0中的行为
但是Stephen Toub告诉我们更多:
使开发人员更容易编写基于任务,.NET 4.5更改了未观察到的默认异常行为例外。虽然未被观察到的异常仍然会导致事件将被引发(不这样做将是一个破坏变更),流程在默认情况下不会崩溃。相反,异常会在事件被触发后被吃掉,不管事件处理程序是否观察到异常。这但是行为是可以配置的。一个新的CLR配置标志可能用来恢复。net 4的崩溃行为。
请注意,这个变化并不意味着开发人员可以不注意忽略未处理的异常……这只意味着运行时更多一些比以前更宽容了。
这是一个很大的惊喜。考虑到文档中没有更新。
所以,我想知道我最好知道在。net v4.5中发生了哪些"无声"的变化
请分享你的知识。
注:这里的"沉默"一词是指从Wat的新文章甚至官方文档中几乎不知道的变化。
. net框架中断更改文档调用了这个(以及更多!)