c# - "Hello world"应用程序在 .NET4.0 中使用 4 个线程,但在 .NET2.0 中使用 3 个

标签 c# .net multithreading .net-4.0

运行最基本的“Hello, World!”时为 .NET2.0 编译的应用程序,您应该看到 3 个线程(Main、GC 和 Finalizer)。但是,对于 .NET4.0 版本,对于相同的基本应用程序,该数字上升到 4。有谁知道额外的线程是做什么用的?

最佳答案

自 .NET4 以来,线程池默认保留空闲线程(如 MSDN points it )。 我找不到它们的编号是如何指定的(尽管您可以使用 SetMinThreads 更改它),它可能不是。

dotNetPerls文章表明它还取决于机器上的内核数量(这是有道理的)。

您可以在您的机器/特定程序上测试以使用两个 CLR 打印 ThreadPool.GetMinThreads()。

关于c# - "Hello world"应用程序在 .NET4.0 中使用 4 个线程,但在 .NET2.0 中使用 3 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398877/

相关文章:

c# - 获取 HttpElement 文本

c# - 使用 Controller 操作过滤器捕获 HTML 输出

c# - 在单个 ftp 请求中创建一个包含子目录的目录?

关于 linux 内存问题的 C++ 多线程程序

c# - 您能想到 .NET 中具有同步上下文的事件模式吗?

c++ - 尽管有互斥锁,线程中的竞争条件

c# - 我可以在点网核心控制台应用程序中使用 BackgroundService

c# - 在 Windows Installer (VS2008) 中同时定位 x86 和 x64

c# - "new System.Timers.ElapsedEventHandler(DoStuff)"调用无效

c# - 将 Microsoft.AspNet.Identity.EntityFramework.3.0.0-rc1-final 安装到类库中