【发布时间】:2013-11-26 10:35:47
【问题描述】:
根据一些文章和博客,如下代码应该会导致 .NET 4 中的异常
static void Main(string[] args)
{
Task.Factory.StartNew(() => { throw new Exception(); });
Thread.Sleep(1000);
GC.Collect();
GC.WaitForPendingFinalizers();
Console.WriteLine("Completed");
}
预期异常:
未处理的异常:System.AggregateException:通过等待任务或访问其异常属性未观察到任务的异常。结果,未观察到的异常被终结器线程重新抛出。 ---> System.InvalidOperationException: 由于对象的当前状态,操作无效。
但事实并非如此。 我 PC 上的 .NET 4 应用程序的行为类似于 .NET 4.5:
- 默认情况下它们不会抛出聚合异常
- 他们在配置文件中检测到以下设置:
看起来 .NET 4 已被修补以获得与 .NET 4.5 相同的行为。是真的还是我的配置有问题? 或者如果安装了 4.5,任何 .NET4 应用程序(不针对 4.5)都会以这种方式运行? 提前致谢。
【问题讨论】:
标签: c# .net exception .net-4.0 task-parallel-library