C# .NET4中未观察到的任务异常
根据一些文章和博客,下面这样的代码应该会导致.NET4中出现异常C# .NET4中未观察到的任务异常,c#,.net,exception,.net-4.0,task-parallel-library,C#,.net,Exception,.net 4.0,Task Parallel Library,根据一些文章和博客,下面这样的代码应该会导致.NET4中出现异常 static void Main(string[] args) { Task.Factory.StartNew(() => { throw new Exception(); }); Thread.Sleep(1000); GC.Collect(); GC.WaitForPendingFinalizers(); Console.WriteL
static void Main(string[] args)
{
Task.Factory.StartNew(() => { throw new Exception(); });
Thread.Sleep(1000);
GC.Collect();
GC.WaitForPendingFinalizers();
Console.WriteLine("Completed");
}
预期的例外情况:
未处理的异常:System.AggregateException:未通过等待任务或访问其Exception属性观察到任务的异常。结果,未观察到的异常被终结器线程重新调用。-->System.InvalidOperationException:由于对象的当前状态,操作无效
但事实并非如此。
我的电脑上的.NET 4应用程序的行为类似于.NET 4.5:
- 默认情况下,它们不会抛出聚合异常
- 它们在配置文件中检测到以下设置:
用户完全有可能真正只安装.NET 4,不过…谢谢。也许这里值得一提(非常好):是否可以在安装了4.5的机器上运行v4.0(用于测试目的)?@TDenis:我不知道有什么方法可以做到这一点,不。我将了解如何编辑Eduasync条目。。。我一般不会回到两年前编辑博客文章的时代,但我们会看到……很有趣的是,Silverlight的行为也类似于v4.5(而且它没有app.config来重新配置行为)。@TDenis:Silverlight一般,还是安装了4.5的机器上的Silverlight?我不知道他们之间分享了多少。