.NET Threadpool工作线程和异步IO线程

2024-02-11

好的,据我了解,.NET 线程池维护着许多后台线程,准备用于某种任务。

Get/SetMinThreads 和 Get/SetMaxThreads 方法包含两个可以返回或调整的参数。

根据MSDN http://msdn.microsoft.com/en-us/library/system.threading.threadpool.setminthreads.aspx这两个参数分别表示工作线程数和用于异步IO操作的线程数。

哪些类型的操作使用这些特定类型的线程?

工作线程:

  1. 我认为是 QueueUserWorkItem。
  2. 还要别的吗?

异步IO线程:

  1. 例如,在文件流上调用 Beginxxx、Endxxx 时使用? (或者网络、串口等)
  2. 还要别的吗?

感谢您的任何澄清或有关该主题的良好链接。


是的,QUWI 也是委托类型的 BeginInvoke() 方法。 BackgroundWorker 是最著名的例子,被几个类所使用。在幕后仅使用委托的 BeginInvoke()。

I/O 完成线程是一项非常低级的 Windows 功能,可让代码在 I/O 请求完成时快速运行。最明显的是 ReadFileEx() 函数的最后一个参数,还有其他参数。托管等效项通过 ThreadPool.BindHandle() 公开。

.NET 类的工作就是做到这一点。只有少数几个使用它:FileStream、PipeStream、FileSystemWatcher、Socket、SerialPort 的内部工作线程和一些 WCF 通道支持类。

我个人不太喜欢在 API 中公开这些配置详细信息,尤其是 I/O 完成线程的配置详细信息。 BCL 团队有点逃避责任,他们对此有些 FUD。这些设置影响整个程序,默认值已经相当慷慨了。修改它们大致相当于调用 GC.Collect()。如果你想找到一个很好的理由来改变它们,那最好是在你被困在地狱里,只剩下一个小时才能赶飞机回家的时候。到过那里 :)

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

.NET Threadpool工作线程和异步IO线程 的相关文章

  • 断点会停止所有线程吗?

    如果我的程序中有两个线程同时运行 并在其中一个线程上设置了断点 那么当遇到此断点时 另一个线程也会停止 还是会继续执行 我用 Java 编写并使用 NetBeans 断点可以选择它们的行为方式 挂起单个线程或所有线程
  • 使用 boost::thread 特定的 ptr<>::get() 是否会很慢?有什么解决方法吗?

    我目前正在使用 Valgrind 的 Callgrind 分析一个存在性能问题的应用程序 在查看分析数据时 似乎有 25 的处理时间花费在boost detail get tss data在主要目的是物理模拟和可视化的应用程序中 get t
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • Azure CloudTable 线程安全吗?

    我正在使用 Storage SDK 2 0 从不同线程 ASP NET 应用程序 写入 Azure 表存储 Is 云表 object 线程安全 我是否可以仅初始化 CloudStorageAccount CloudTableClient 和
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁
  • 当进程等待完成时如何显示加载控件?

    我决定使用这个第三方组件在我的 Windows 窗体中制作一个简单的加载控件 http www codeproject com Articles 14841 How to write a loading circle animation i
  • 获得新的 access_token 后,如何更新我的 cookie?

    使用刷新令牌获取新的访问令牌后 我想使用该访问令牌更新我的客户端 cookie 我的客户端能够使用 ajax 登录并调用我的 REST API 但是当第一次授权过期时 API 调用自然不再起作用 我有一个 NET Web 应用程序 它使用自
  • 如果将摘要添加为参考,则摘要不会显示在程序集中

    我用 C 创建了一个 类库 其中包含许多带有摘要的函数 XML 文档注释 例如
  • 两个 RichTextBox 具有相同的滚动条

    是否有任何可用的第三方工具有两个富文本框 但两者只有一个共享滚动条 我需要用两种不同的语言实现一些文本 但两个文本框应该同时滚动 public enum ScrollBarType uint SbHorz 0 SbVert 1 SbCtl
  • C# 如何使用 CallNtPowerInformation 和 Interop 来获取 SYSTEM_POWER_INFORMATION

    我正在尝试编写一个小程序 该程序作为服务运行并监视用户是否处于活动状态 如果用户空闲 没有鼠标 键盘 一个小时 则某些进程将被终止 如果用户使用 user32 dll 中的 LASTINPUTINFO 运行它 它就可以工作 但它不能作为服务
  • 有条件地在 Visual Studio 中嵌入资源 (C#)

    有没有办法有条件地将资源嵌入到 NET 项目中 IE 如果我定义了 INCLUDETHIS 那么我想要将某个大文件嵌入到 dll 中 否则我不希望它嵌入 我知道我可以做两个项目来做到这一点 但我希望在一个项目中完成这一切 使用该文件的代码很
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • KeyValuePair - 没有无参数构造函数?

    我有一个具有 KeyValuePair 类型属性的对象 我想从数据库读取一些数据并将结果存储在这个 KeyValuePair 类型字段中 myObject KeyValuePairs ctx ExecuteQuery
  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • SQL 查询将文本数据存储在 Varbinary(max) 中

    有没有办法让 varbinary 在 SQL Server 中接受文本数据 这是我的情况 我有相当大量的 XML 我计划以 压缩 格式存储它们 这意味着 Varbinary 但是 当我进行调试时 我希望能够翻转配置开关并以纯文本形式存储 以
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr

随机推荐

  • 在管理中合并用户和用户配置文件

    我一直在阅读 Django 对用户和配置文件的分离 并且我决定使用一个名为 UserProfile 的模型 该模型位于帐户应用程序中作为我的配置文件 问题是 现在我有两个独立的管理区域 一个用于修改用户 一个用于修改用户配置文件 是否可以在
  • Word 插件 获取完整的文档文本?

    我正在使用以下命令编写一个 Office addinYeoman 办公室发电机 https github com OfficeDev generator office 基于这些说明 https dev office com getting
  • 运行 SqlQuery EF 时 FieldNameLookup.GetOrdinal 中索引超出范围异常

    我们最终得到一个索引超出范围运行这样的代码时出现异常 result Data dbOptima Database ExecuteStoredProcedure task StoredProcedureValues PROC GET TASK
  • Python中的时间序列分解函数

    时间序列分解是一种将时间序列数据集分成三个 或更多 分量的方法 例如 x t s t m t e t where t is the time coordinate x is the data s is the seasonal compon
  • firebase 函数 Puppeteer 找不到 Chromium GCP

    我已经在谷歌云上使用GCP很长时间了 我想运行一个使用Puppeteer的云函数 但不幸的是 我收到以下错误 未处理的错误错误 找不到 Chromium 修订版 1069273 如果出现以下任一情况 就会发生这种情况 您在运行脚本之前没有安
  • 比较 JPA Criteria API 中的日期实体

    使用 JPA 2 和 EclipseLink 实现 我正在尝试构建一个动态查询 它应该为我带来一些在给定日期之后保留的记录 CriteriaBuilder builder em getCriteriaBuilder CriteriaQuer
  • 如何为 WongKinYiu/Yolov7 姿势估计准备自定义关键点数据集?

    如何准备自定义关键点数据集黄建耀 yolov7 https github com WongKinYiu yolov7 pose estimation 关键点格式描述如下 https cocodataset org format data h
  • 气流中任务的粒度

    对于一项任务 有许多辅助任务 从文件 数据库获取 保存属性 验证 审核 这些辅助方法并不耗时 一个样本 DAG 流 fetch data gt gt actual processing gt gt validation gt gt save
  • Paperclip:如何在 Rails 控制台中存储图片?

    我尝试将本地图像存储在 Rails 控制台中 因为我的本地存储中有很多图片 我使用爬虫下载大量图片 所以我想将它们存储到数据库中 利用回形针来完成一些图像工作 例如缩略图等 如果我使用网页将新图片一张一张保存到数据库中 会花费很多时间 所以
  • 使用 Rails 和 ActiveMerchant 进行定期计费:最佳实践、陷阱、陷阱?

    我们正在准备发布一个大型 Web 应用程序 该应用程序已经开发了一年 我们即将开始集成 ActiveMerchant 来处理该服务的经常性订阅费用 我正在寻找有关考虑我们的要求 如下所列 的最佳实践的任何建议 以及针对常见陷阱或我应该特别考
  • 如何使用 jQuery 将一个 HTML 块替换为另一个 HTML 块

    我想替换以下 html 块 table class t12PageBody cellpadding 0 cellspacing 0 width 100 tr td REGION POSITION 01 td tr table table w
  • 更新插入交易

    我将 Spring 与 PostgreSQL 结合使用 并尝试使用如下代码执行某种 UPSERT jt update delete from A where id 1 jt update insert into A id value val
  • 解析文本区域中的换行符而不允许所有 html 标签

    我有一个文本区域字段 用户可以在其中输入内容 当涉及到在页面上显示他们的条目时 rails 返回 n对于每个换行符 在页面上的 html 中显示为根本没有换行符 据我所知 解决这个问题的标准方法是 gsub命令 替换 n with br 然
  • C# 如何注销 Citrix XenApp 用户会话?

    由于 Citrix 关于其 SDK 的文档绝对为零 因此我在此记录这一点 使用 C 如何以编程方式注销用户会话 使用下面的简单方法通过解析会话并注销单个会话来注销用户会话 using Citrix Common Sdk using Citr
  • Qt/Qml 和方法重载

    刚刚在 Qml 中调用重载的 C 方法时遇到了 Qt 框架的奇怪行为 并试图了解其背后的原因 假设我有一个QList
  • 带星号参数和不带星号参数的调用函数的区别

    我知道 Python 函数定义中星号的含义 不过 我经常看到星号用于调用带有如下参数的函数 def foo args kwargs first func args kwargs second func args kwargs 第一个和第二个
  • 可可印刷

    我已经制作了一个非常适合 A4 页面的视图 现在我想打印它 请注意 我没有使用drawRect或类似的东西 只是一个带有子视图和文本标签的普通视图 我的问题是 我对该视图有一些视图 我使用图层在项目周围放置背景颜色和圆角矩形 子视图不会打印
  • JavaScript 依赖列表

    我有一个需要找出依赖关系的元素列表 I have a b d d c e a取决于b and d and d on c and e 有没有一种方法可以巧妙地构建依赖关系 输出应该 可能 是 b c e d a 克里斯蒂安 假设您想要一个元素
  • 在shell脚本中设置环境变量/在Java程序中访问

    我想在Ubuntu 10 04中使用shell脚本设置环境并想在java程序中访问 我写了这样的shell脚本 bin sh export JAVA home ubuntu echo Variable JAVA 我的java程序是 impo
  • .NET Threadpool工作线程和异步IO线程

    好的 据我了解 NET 线程池维护着许多后台线程 准备用于某种任务 Get SetMinThreads 和 Get SetMaxThreads 方法包含两个可以返回或调整的参数 根据MSDN http msdn microsoft com