UnobservedTaskException不会终止进程

时间:2015-08-08 14:46:48

标签: c# .net-4.0 task-parallel-library task unobserved-exception

我试图了解.NET 4.0中的UnobservedTaskException问题,所以我编写了folloging代码

        #infscr-loading {
            display: none;
            opacity: 0; 
        } 

        #content {
            width: 850px; 
            height: 100%; 
            position: relative;
            left: 5%; 
            margin-left: 350px; 
            font-family: {font:Text}; 
            {block:ifRightSidebar}
            margin-left:  -450px; 
            {/block:ifRightSidebar}

            margin-top: 81px; 

        }

        #content a{
            color: #000; /* color:Link */
            text-decoration: none;
            border-bottom: 1px solid rgba(100, 100, 100, 0.2);
        }

        #description a {
            color: {color:Description}; /* color:Link */
            text-decoration: underline;
        }

        #overlayer {
            position: fixed;
            z-index: -1;
            top: 0px;
            height: 100%; 
            background-color: #FFF; 
            padding-left: 20px; 
            padding-right: 20px; 
            left: calc(50% - {select:Content Size}/2 - 20px); 
            width: {select:Content Size};
        }

        /* GENERAL POST */ 

        #content .post {
            background: #EFB576; /* color:Post Background */
            color: {color:Text}; /* color:Text */ 
            width: 100%; 
            word-wrap: break-word;
            overflow: hidden; 
            position: relative;
            font-size: {select:Text Size} /* select:Font Size */;
            padding: 14px; 
            padding-bottom: 50px; 
            margin-top: 60px;
            margin-bottom: 60px; 
            {block:PermalinkPage}
            width: 470px !important;
            position: relative !important;
            left: 50% !important;
            margin-left: -250px !important; 
            margin-top: 0px !important;
            padding: 15px !important;
            {/block:PermalinkPage}
        }

        #content .post blockquote {
            display: block; 
            -webkit-margin-before: 5px !important;
            -webkit-margin-after: 5px !important;
            -webkit-margin-start: 8px !important;
            -webkit-margin-end: 8px !important;
            border-left: 3px solid rgb(230, 230, 230);
            padding-left: 10px; 
            top: 3px; 
            position: relative;
        }

        #content .post a{
            color: {color:Link}; /* color:Link */
            text-decoration: none;
            border-bottom: 1px solid rgba(100, 100, 100, 0.2);
        }

        #content .post img {
            height: auto;
            width: auto;
            position: relative;
            display: block;
        }

UnobservedTaskException被触发,然后我的应用程序继续工作。但是根据MSDN,这个过程应该被杀死。谁能告诉我为什么?

1 个答案:

答案 0 :(得分:4)

如果您在只安装了.Net 4.0的计算机上运行此代码,它确实会崩溃。

由于自4.0以来的所有.Net版本都是就地更新,即使您将.Net 4.0的应用程序作为目标,它也会在具有一个版本的计算机上运行。

要在更高版本上运行时获得.Net 4.0的相同行为,您可以将其添加到app.config文件中(如TaskScheduler.UnobservedTaskException Event中所述):

<runtime> 
    <ThrowUnobservedTaskExceptions enabled="true"/> 
</runtime>