免费多线程?

Ani*_*ket 20 c# multithreading

所以我有一个简单的控制台应用程序:

class Program
{
    static void Main(string[] args)
    {
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

我用发布配置构建了它.当我运行它并打开任务管理器时,我发现它有4个线程.即使我没有创建任何线程,为什么会发生这种情况?

这不可能是每个应用程序.我尝试打开记事本,它只有1个线程.虽然它是一个原生应用程序,我的控制台应用程序是管理.

有任何想法吗?

Lee*_*Lee 17

我想你看到的线程是:

  1. 主线程.
  2. 终结者线程
  3. 进程内调试器辅助线程
  4. 并发GC线程.

这篇文章详细介绍了一些特殊的CLR线程.


sll*_*sll 6

这些是为应用程序创建的.NET Framework线程,您可以使用Visual Studio 2010线程调试窗口查看哪些线程属于该问题下的应用程序.

刚创建了一个带有空main方法的基本控制台应用程序,我们可以看到创建了8个线程:

在此输入图像描述

请参阅有关CLR内部线程的有趣讨论:CLR的内部线程

顺便说一句,记事本不是.NET Framework应用程序