- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码在 netcoreapp2.0 应用程序中运行时,似乎并没有最终抛出 UnobservedTaskException
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp3 {
class Program {
public static void Main(string[] args) {
TaskScheduler.UnobservedTaskException += (s, e) => {
/// Try to crash the application - we wanna nail unobserved exceptions dead.
/// Unfortunately, this code never seems to run.
Console.WriteLine("UnobservedTaskException thrown.");
throw e.Exception;
};
var t = Task.Run(() => {
throw new NotImplementedException();
});
while (!t.IsFaulted)
Thread.Sleep(1);
t = null;
Console.WriteLine("Task is faulted.");
GC.Collect();
GC.WaitForPendingFinalizers();
Console.ReadKey();
}
}
}
这是项目文件。我怎样才能触发 UnobservedTaskException
处理程序?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>7.3</LangVersion>
</PropertyGroup>
</Project>
在其他 stackoverflow 帖子中,我看到了在项目文件中使用以下代码片段的建议,但它仅适用于 .net Framework 4.0+ 项目。如果 .netcore 项目文件有等效项,那可能就是我需要知道的。
<runtime>
<ThrowUnobservedTaskExceptions enabled="true"/>
</runtime>
最佳答案
我遇到了同样的问题。只需尝试在 RELEASE 模式下运行即可。我对其进行了测试,它可以与控制台应用程序 .net 核心版本 2.2 一起使用。
internal class Program
{
private static void Main(string[] args)
{
// REMEMBER TO RUN IN RELEASE MODE
var handler = new EventHandler<UnobservedTaskExceptionEventArgs>(Unobserved);
TaskScheduler.UnobservedTaskException += handler;
Task.Run(() => { Console.WriteLine("task 1"); throw new Exception("TASK 1 EXCEPTION"); });
Task.Run(() => { Console.WriteLine("task 2"); throw new Exception("TASK 2 EXCEPTION"); });
Thread.Sleep(1000);
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Thread.Sleep(1000);
Console.ReadKey();
}
private static void Unobserved(object o, UnobservedTaskExceptionEventArgs e)
{
e.SetObserved(); // optional
foreach (var ex in e.Exception.InnerExceptions)
{
Console.WriteLine(ex.Message);
}
}
}
关于c# - 在 dotnetcoreapp2.0 中使用 UnobservedTaskException 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891944/
这个问题在这里已经有了答案: How to handle all unhandled exceptions when using Task Parallel Library? (3 个答案) 关闭
在我的 MVC 应用程序中,我有时会遇到如下异常: System.Net.WebException: The request was aborted: The request was canceled
我试图了解 .NET 4.0 中的 UnobservedTaskException 问题,所以我编写了以下代码 TaskScheduler.UnobservedTaskException += (se
根据我的研究,我了解到以下内容: TaskScheduler.UnobservedTaskException必须等待任务被垃圾回收,然后该任务的未观察到的异常才会冒泡到 UnobservedTaskE
假设我有一个任务数组 taskArray 并且我使用 ContinueWhenAll 创建了一个任务延续taskArray 中的一项或多项任务抛出一些异常。我的问题是,是否存在任何可能导致 Unobs
我一直在 AWS Lambda 的 CloudWatch 日志中注意到这个异常。 一切似乎都得到了处理,所以我认为这是在 Lambda 完成执行后创建的 AWS 代码(与我编写的代码相反)中的异常。
我无法理解 TPL 中如何处理异常。下面的代码应该可以说明我的问题。 using System; using System.Collections.Generic; using System.Net;
我正在阅读一本关于 C# 任务并行库的书,并有以下示例,但从未触发 TaskScheduler.UnobservedTaskException 处理程序。任何人都可以告诉我原因吗? TaskSched
我最近向生产网站发布了一个 asp.net web api。在大约每天一次的生产中,未处理的异常会导致网站进程循环: An unhandled exception occurred and the p
我正在开发一个 asp.net mvc 应用程序。我的应用程序的架构如下: 一个DBAccessLayer//访问数据库的层 一个 ServiceLayer//连接 1 和 3 的层。 一个 WebL
以下场景在 .NET 4.5 下运行,因此任何 UnobservedTaskException 都不会 terminate the process . 我习惯于在我的应用程序启动时监听任何 Unobs
以下代码在 netcoreapp2.0 应用程序中运行时,似乎并没有最终抛出 UnobservedTaskException using System; using System.Threading;
为了稳健性,我想为 TaskScheduler.UnobservedTaskException 添加一个处理程序。处理程序会记录异常,通知用户并关闭应用程序。 下面的实现有意义吗?在 WPF 中,在此
最近,我在后端 API 应用程序中为每个 UnobservedTaskException 添加了错误日志记录。原因是某些 API 调用执行额外的任务,这些任务在我返回结果后完成,这就是为什么我无法跟踪
我们有一个位于高度异步 PCL 库之上的 Xamarin iOS 应用程序。有可能偶尔某个任务会在库中出现故障而未被观察到。因此,我们在 TaskScheduler 上连接了 UnobservedTa
我见过的一个常见问题是管理任务中未处理的异常。它们不会导致崩溃,它们会悄无声息地发生,当任务失败时我什至无法触发事件!我看到用户规定了自定义类和东西来处理这个问题,我的问题是,是否有一种“标准”的 M
我是一名优秀的程序员,十分优秀!