从.Net Framework v.4.0到4.5还发生了哪些其他无声的变化?

时间:2013-01-20 11:51:14

标签: .net .net-4.0 task-parallel-library .net-4.5

我们希望切换到.net 4.5,因为它提供了许多改进。

但是......有时候我发现了一些关于框架中不是微不足道的变化的棘手细节。

让我们看一下TPL未被观察到的exception handling作为例子:

  

如果您不等待传播异常或访问的任务   它的异常属性,异常根据提升而升级   任务被垃圾收集时的.NET异常策略。   (注意,“例外政策”一词没有任何联系或澄清)

嗯,这似乎是.Net v.4.0中的行为

但Stephen Toub tells us more

  

使开发人员更容易编写基于的异步代码   任务,.NET 4.5更改未观察到的默认异常行为   例外。虽然未观察到的异常仍将导致   要引发的UnobservedTaskException事件(不这样做会是一个   破坏更改),默认情况下进程不会崩溃。相反,   异常将在事件发生后最终被吃掉,   无论事件处理程序是否遵守该异常。这个   但是,可以配置行为。新的CLR配置标志可以   用于恢复.NET 4的崩溃行为。
  请注意,此更改并不意味着开发人员应该不小心   忽略未处理的异常......它只是意味着运行时更多   比过去更宽容了。

这是一个很大的惊喜。考虑到文档中没有更新。

所以,我想知道在.Net v4.5中发生的其他“无声”变化我会更清楚。 请分享你的知识。

P.S。在这里,“沉默”这个词意味着从Wat的新articles甚至官方文献中难以得知的变化。

1 个答案:

答案 0 :(得分:5)

The .NET Framework breaking change document将此调出(以及更多!)。