首页 > 解决方案 > 可以为 .NET5 控制台应用程序禁用 ETW 处理吗?

问题描述

我有一个async Main()这样的:

    static async Task<int> Main(string[] args)
    {
        try
        {
            var program = new Program();
            await program.RunAsync();
            return 0;
        }
        catch (Exception exception)
        {
            Log(exception);
            return 1;
        }
    }

它是一个大量使用HttpClient. 我pwsh曾经并行运行 32 个进程实例,有时(在运行 1000 次之后)一个进程会卡住。当我将 VisualStudio 附加到进程时,我的代码没有线程,但我看到了这个:

两个线程的堆栈跟踪

似乎有一个回调在等待 ETW 时陷入僵局......

我该如何解决?在这种情况下,有什么方法可以禁用 ETW 跟踪?

标签: c#.net-5etw

解决方案


推荐阅读