线程池中的活动线程数

2023-11-23

当我编写下面的代码时,为什么我得到的可用线程号是 1022、1020。 因为我正在使用线程池,所以我必须获得最多 25 个线程。

我猜输出线程数是系统上的可用线程。我需要在 win 表单应用程序中获取线程池中的可用线程号。

private void Foo()
{
    int intAvailableThreads, intAvailableIoAsynThreds;

    // ask the number of avaialbe threads on the pool,
    //we really only care about the first parameter.
    ThreadPool.GetAvailableThreads(out intAvailableThreads,
        out intAvailableIoAsynThreds);

    // build a message to log
    string strMessage =
        String.Format(@"Is Thread Pool: {1},
            Thread Id: {2} Free Threads {3}",
            Thread.CurrentThread.IsThreadPoolThread.ToString(),
            Thread.CurrentThread.GetHashCode(),
            intAvailableThreads);

    // check if the thread is on the thread pool.
    Trace.WriteLine(strMessage);

    // create a delay...
    Thread.Sleep(30000);

    return;
}

多谢..

(注:我从http://www.codeproject.com/KB/cs/AsyncMethodInitation.aspx) 好文章!!


因为我正在使用线程池,所以我必须获得最多 25 个线程。

每个核心线程池中的最大线程数随着时间的推移发生了很大变化。它不再是每个核心 25 个,我怀疑这正是您所期望的。

例如,在我的带有 .NET 4 的四核超线程笔记本电脑上运行此程序,我最多可以获得 32767 个工作线程和 1000 个 IO 完成端口线程:

using System;
using System.Threading;

class Test
{
    static void Main()
    {
        int worker; 
        int ioCompletion;
        ThreadPool.GetMaxThreads(out worker, out ioCompletion);
        Console.WriteLine("{0} / {1}", worker, ioCompletion);
    }    
}

在 .NET 3.5 下,我得到 2000 个工作线程,还有 1000 个 IO 完成端口线程。

但这并不是线程池中实际的线程数,而是线程池允许自己随时间创建的最大线程数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程池中的活动线程数 的相关文章

  • 不同文件中的相同静态变量[重复]

    这个问题在这里已经有答案了 HI 欢迎大家回答这个问题 Q1 如果 File1 c 包含 static int a File2 c 包含 static int a 如果这两个文件是同一项目的一部分 如果是的话 编译会抛出任何错误吗 如果它不
  • 不同翻译单元中字符串文字的内存地址是否相同?

    假设我们有以下 cpp 文件 include
  • 如何在 ASP.Net Core 6 Web Api 中依赖注入 Microsoft Graph 客户端

    我正在尝试使用 ASP Net Core 6 设置 Web api 以便用户可以到达我的端点 然后我使用特权帐户在 Teams 中执行一些工作 我认为我没有正确连接 DI 部分 因为在向 Teams 发出请求时出现以下错误 MsalUiRe
  • C# SMO 远程数据库备份到本地机器

    我有一个执行 SQL 数据库备份和恢复的应用程序 这在本地计算机上运行良好 但是如果我针对另一台计算机上托管的 SQL 服务器运行此应用程序 则会出现以下错误 Microsoft SqlServer Management Smo Faile
  • 不要覆盖 Azure Blob 存储

    我有一种将文件添加到 Azure Blob 存储的方法 问题是我试图指定一个条件 在该条件下它不会覆盖 blob 而只是添加到其中 我正在尝试使用参数访问条件 但是 VS 说这个方法不能采用两个参数 async void archiveNe
  • 有什么办法可以让这个 C# 代码更快吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在读取一个大文件 X12 并解析其中的信息 我有两个瓶颈功能 我似乎无法解决 read line 和 get element 有什
  • 使用 C# 启动 Outlook

    我可以让 C 在代码中启动 Outlook 吗 在 VB6 中 我们使用对象 Outlook Application 并编写 Set oOutlook CreateObject Outlook Application Set oNameSp
  • FxCop 和 GAC 疯狂

    当我尝试分析依赖于模式和实践 企业库数据 以及其他 2 0 0 0 的项目时使用 FxCop FxCop 抱怨它不能 定位程序集引用 即使正在分析的应用程序 dll 是根据其编译的此版本及其在 GAC 中 如果我浏览到 GAC 尝试选择相同
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • 不使用 DAO 压缩 Microsoft Access 数据库

    我用CDatabase类开一个ACCDB访问数据库 司机是 T Microsoft Access Driver mdb accdb 我可以打开并使用数据库 已经这样做很多年了 if DatabaseExist m strMDBPath AJ
  • Makefile:如何正确包含头文件及其目录?

    我有以下 makefile CC g INC DIR StdCUtil CFLAGS c Wall I INC DIR DEPS split h all Lock o DBC o Trace o o cpp DEPS CC o lt CFL
  • 调用 Console.ReadLine() 的方法的 C# 单元测试

    我想为名为的类的成员函数创建一个单元测试ScoreBoard它存储了一场比赛中排名前五的球员 问题是我为 SignInScoreBoard 正在呼叫Console ReadLine 这样用户就可以输入他们的名字 public void Si
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • 从 ASP.NET Web API 返回 HTML

    如何从 ASP NET MVC Web API 控制器返回 HTML 我尝试了下面的代码 但由于未定义 Response Write 而出现编译错误 public class MyController ApiController HttpP
  • ld: 无法对非 PE 输出文件执行 PE 操作错误

    我是操作系统编程的新手 我正在读一本书 其中给出了一个简单的内核示例 如下所示 main char video memory 0xb8000 video memory X 为了编译这个名为 kernel c 的文件 我在 Windows 7
  • 在 Windows 上构建 MLT 框架时出错

    我一直在遵循官方提供的构建指南here http www mltframework org bin view MLT WindowsBuild 我需要 MLT 来创建视频播放器 并且我选择仅安装前 4 个库 如指南中所述 FFmpeg SD
  • 在运行时生成可执行文件

    好吧 所以我想知道如何创建一个程序 该程序创建第二个程序 就像大多数压缩程序如何创建自解压自可执行文件一样 但这不是我需要的 假设我有 2 个程序 每个都包含一个类 我将使用一个程序来修改类并用数据填充类 第二个文件将是一个也具有该类的程序
  • 如何使用 C# 以编程方式识别对方法的引用数量

    我最近继承了需要一些修剪和清理的 C 控制台应用程序 长话短说 该应用程序由一个包含超过 110 000 行代码的类组成 是的 单个类中有超过 110 000 行 当然 该应用程序是我们业务的核心 全天候运行更新动态网站上使用的数据 尽管我
  • 如何在不加载到内存的情况下对大型 csv 文件进行排序

    我有 20GB csv 文件 如下所示 CallId MessageNo Information Number 1000 1 a 2 99 2 bs 3 1000 3 g 4 66 2 a 3 20 16 3 b 1000 7 c 4 99
  • 如何通过反射获取透明代理的属性值?

    我的代码接收透明代理而不是原始实例 虽然这var type obj GetType 产生原始类的类型 下面的代码抛出TargetException 对象与目标类型不匹配 var value property GetValue obj nul

随机推荐

  • 如何使用 Rhino Mocks 来模拟 HttpContext.Application

    我是 Mocking 框架的新手 并开始使用 RhinoMocks 来协助我的 MVC 应用程序单元测试 我在用着Scott Hanselmanns MVC 模拟助手协助模拟 HttpContext 我已经成功地 一段时间后 模拟了一些我需
  • 在 Rails 中,如何使用视图呈现 JSON?

    假设您在 users 控制器中 并且想要获取 show 请求的 json 响应 如果您可以在 views users 目录中创建一个名为 show json 并在 users show 之后的文件 那就太好了操作完成 它呈现文件 目前您需要
  • css中direction和text-align的区别

    两者有什么区别 方向 右转 文本对齐 右对齐 相关this问题 方向从右到左对元素进行排序 Example div div style display inline block A div div style display inline
  • 处理与 R 的数据库交互中的字段类型

    我使用 RMySQL 和 MySQL 数据库来存储我的数据集 有时数据会被修改 或者我也会将结果存储回数据库 长话短说 在我的用例中 R 和数据库之间有相当多的交互 大多数时候我使用方便的功能 例如dbWriteTable and dbRe
  • 将 2 个静态库链接到 1 个 iOS 静态库

    我在 Xcode 中创建了两个单独的静态库 用于在 iOS 上使用 A 和 B A 使用 B 中定义的方法 当创建需要 A 和 B 的新 Xcode 项目时 我可以分别包含它们 然而 为了简化集成 我更喜欢创建一个包含 A 和 B 的通用框
  • “错误:请求‘a’中的成员‘size’,它是指针类型”,但我不认为它是一个指针

    所以 我以为我正在尝试做一些简单的事情 但显然不是 我编写了这个函数 以便以后可以扩展它 并在需要时通过以下方式快速为用户提供菜单menu mystrings int menu string a int choice 0 cout lt l
  • Java 13 SE 规范不需要缓存装箱的 Byte 对象吗?

    阅读JAVA 13 SE规范 我发现在第5章 第5 1 7节 拳击转换有以下保证 如果被装箱的值 p 是计算常数的结果 boolean char short int 或 long 类型的表达式 15 28 以及 结果为 true false
  • 调试 R 中未由包导出的函数

    我想逐步使用debug or trace 未导出的函数 例如 我该如何做vcov polr包装的MASS 从函数中调用polr polr已导出 但 vcov polr 未导出 也就是说 当我跑步时polr 我希望调试浏览器在代码输入后启动v
  • 生成低位深度的图像文件?

    bpp 每像素位数 因此 32bpp 意味着 R G B A 为 8 8 8 8 就像 NET 有一个枚举 System Drawing Imaging PixelFormat 现在一旦我有一个Bitmap or Image对象与我的图形
  • 如何在WPF中绑定逆布尔属性?

    我所拥有的是一个具有IsReadOnly财产 如果这个属性为真 我想设置IsEnabledButton 上的属性 例如 设置为 false 我愿意相信我可以像IsEnabled Binding Path IsReadOnly 但这不适用于
  • NodeJS readdir 并需要相对路径

    假设我有这个目录结构 Project node modules SomeModule bar js config file json foo js foo js require bar bar js fs readdir config re
  • 清单合并失败错误

    我正在将当前项目的大型应用程序迁移到 Android Studio 和 Gradle 中 我目前陷入以下问题 Error 87 9 Execution failed for task App processDebugManifest gt
  • pip:根据包名称选择索引url?

    我创建了一个本地私有包存储库 按照惯例 所有这些包都以识别前缀命名 例如 foo package 这些包可能依赖于 PyPi 上可用的公共包 我们假设 PyPi 中不存在同名包的风险 通过使用 index url和 一起 extra ind
  • Java 代码未正确更新

    这可能看起来很奇怪 我用 Java 编写了代码 在 Eclipse 中 然后 我对代码做了一些修改 现在 我尝试运行新代码 修改后 但它仍然为我提供之前代码的输出 我在代码中放置了几个调试点 但它跳过了一些调试点 尽管它应该在它们处停止 并
  • 如何将 RFC-1123 日期时间格式化程序转换为本地时间

    我正在获取日期时间Thu 25 Aug 2016 08 59 00 GMT在这个RFC 1123在我的 Android 应用程序中格式化 我需要转换为当地时间 DateTimeFormatter RFC 1123 DATE TIME jav
  • 从 sockaddr * 转换为 sockaddr_in * 增加了所需的对齐方式

    当我使用一些看起来像这样的代码时 编译器会产生此警告 for p res p NULL p p gt ai next void addr std string ipVer IPv0 if p gt ai family AF INET ipV
  • 关于 Rails 中的演示者模式。有更好的方法吗?

    我的模型中有 def presenter presenter ProfilePresenter new self presenter end ProfilePresenter 是一个类 它具有 get link get img url si
  • Mysql - “选择类似”不使用索引

    我一直在研究MySQL 5 5 24 WinXP 上的索引 但我找不到服务器在运行时不使用一个索引的原因 LIKE用来 例子是这样的 我创建了一个测试表 create table testTable id varchar 50 primar
  • POST 响应的 TIdHTTP 字符编码

    采取以下情况 procedure Test var Response String begin Response IdHttp Post MyUrL AStream DoSomethingWith Response end 现在网络服务器以
  • 线程池中的活动线程数

    当我编写下面的代码时 为什么我得到的可用线程号是 1022 1020 因为我正在使用线程池 所以我必须获得最多 25 个线程 我猜输出线程数是系统上的可用线程 我需要在 win 表单应用程序中获取线程池中的可用线程号 private voi