Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET4中未观察到的任务异常_C#_.net_Exception_.net 4.0_Task Parallel Library - Fatal编程技术网

C# .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

根据一些文章和博客,下面这样的代码应该会导致.NET4中出现异常

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:

  • 默认情况下,它们不会抛出聚合异常
  • 它们在配置文件中检测到以下设置:
看起来.NET4已经进行了修补,以获得与.NET4.5相同的行为。是真的还是我的配置有问题? 或者,如果安装了4.5,任何.NET4应用程序(不针对4.5)都会以这种方式运行? 提前谢谢。

我猜您实际上正在运行.NET 4.5。请记住,.NET4.5实际上安装在.NET4的顶部。即使您的应用程序是针对.NET4的,如果用户安装了.NET4.5,您也会得到新的行为


用户完全有可能真正只安装.NET 4,不过…

谢谢。也许这里值得一提(非常好):是否可以在安装了4.5的机器上运行v4.0(用于测试目的)?@TDenis:我不知道有什么方法可以做到这一点,不。我将了解如何编辑Eduasync条目。。。我一般不会回到两年前编辑博客文章的时代,但我们会看到……很有趣的是,Silverlight的行为也类似于v4.5(而且它没有app.config来重新配置行为)。@TDenis:Silverlight一般,还是安装了4.5的机器上的Silverlight?我不知道他们之间分享了多少。