“你好世界”应用程序在.NET4.0中使用4个线程,但在.NET2.0中使用3个线程

发布于 2025-01-08 06:32:20 字数 135 浏览 0 评论 0原文

当运行最基本的“Hello, World!”时为 .NET2.0 编译的应用程序您应该看到 3 个线程(Main、GC 和 Finalizer)。然而,在 .NET4.0 版本中,对于相同的基本应用程序,该数字会增加到 4。有谁知道多余的线是做什么用的吗?

When running the most basic "Hello, World!" application compiled for .NET2.0 you should see 3 threads (Main, GC and Finalizer). However, with a .NET4.0 build that number goes up to 4 with the same basic application. Does anyone know what the extra thread is for?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一念一轮回 2025-01-15 06:32:20

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

这篇 dotNetPerls 文章表明,它还取决于计算机上的核心数量(这是有道理的) 。

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

The thread pool keeps idle thread(s) by default since .NET4 (as MSDN points it).
I cant find how their number is specified (although you can change it with SetMinThreads), it probably isnt.

This dotNetPerls article suggests that it depends also on the number of cores on the machine (which makes sense).

You could test on your machine/specific program to print ThreadPool.GetMinThreads() with both CLRs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文