.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线程 的相关文章

  • Microsoft Teams 中私人消息的传入 Webhook

    我可以从 C 应用程序或 PS 脚本创建传入 Webhook 将 JSON 消息发送到 MSFT 文档所解释的通道 但是 我想使用传入的 webhook 将 JSON 消息从我的应用程序发送到用户 作为私人消息 就像 Slack 允许的那样
  • 如何在其他核心上运行每个线程?

    我有一个 udp 服务器接收数据并计算它 每个角色我都有两个线程 我的CPU是8个多核 我以不同的速度发送数据 但最多我只使用了 cpu 两核 50 的 14 如果我发送更多的数据值 我的缓冲区将填满并且不会使用更多的CPU 为什么每个核心
  • 无法在.net core中使用WCF WSHttpBinding

    我正在尝试将我的项目从 net 移动到 net core 我最初在 net 中使用 WCF WSHttpBinding 服务 但无法在 net core 中使用相同的服务 我尝试使用 BasicHttpBinding 在客户端与 WsHtt
  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • 有没有办法设置 log4net 内存附加程序可以包含的最大错误消息数?

    我想向根记录器添加一个内存附加程序 以便我可以连接到应用程序并获取最后 10 个事件 我只想保留最后 10 个 我担心这个附加程序会消耗太多内存 该应用程序设计为 24 7 运行 或者还有别的办法吗 您需要创建一个自定义附加程序来存储有限数
  • 为什么WCF中不允许方法重载?

    假设这是一个ServiceContract ServiceContract public interface MyService OperationContract int Sum int x int y OperationContract
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 元素属性语法和属性属性语法之间有语义差异吗?

    我认为元素属性语法和属性属性语法在语义上没有太大区别 但是 我发现一定有什么不同 例如 下面的例子只是演示了一个简单的触发器
  • 反序列化嵌套类时不需要 xmlns=''

    我在尝试在服务器上序列化类 将其发送到客户端并在目标上反序列化时遇到问题 在服务器上我有以下两个类 XmlRoot StatusUpdate public class GameStatusUpdate public GameStatusUp
  • C++,如何在进程或线程之间共享数据

    我有一个运行两个不同操作的程序 我想在它们之间共享变量 目前 我正在使用线程而不是 fork 进程 但即使我将它们声明为易失性 我在共享变量时也遇到问题 我尝试使用 boost 做 boost thread collisions threa
  • ASP.NET MVC ActionFilterAttribute 在模型绑定之前注入值

    我想创建一个自定义操作过滤器属性 该属性在模型绑定期间可访问的 HttpContext 项中添加一个值 我尝试将其添加到 OnActionExecuting 中 但似乎模型绑定是在过滤器之前执行的 你知道我该怎么做吗 也许模型绑定器中有一个
  • C# 中什么时候应该使用 volatile 关键字?

    谁能提供一个很好的解释volatile https learn microsoft com en us dotnet csharp language reference keywords volatileC 中的关键字 它解决了哪些问题 没
  • WCF 服务调用包装器

    为 WCF 服务调用创建包装器的最佳实践是什么 我认为有必要 为了在同一个地方监视所有呼叫 我正在考虑使用这种代码 这是正确的想法吗 RetType t ServiceExecutionContext
  • C#:询问用户密码,然后将其存储在 SecureString 中

    在我目前为客户开发的小型应用程序中 我需要询问用户他的 Windows 登录用户名 密码和域 然后使用这些信息系统 诊断 进程 启动启动一个应用程序 我有一个带有 UseSystemPasswordChar 的文本框来屏蔽输入的密码 我需要
  • 如何获取可用系统内存的大小?

    C NET 中是否可以获取系统可用内存的大小 如果是的话怎么办 Use Microsoft VisualBasic Devices ComputerInfo TotalPhysicalMemory http msdn microsoft c
  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案

随机推荐

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

    我一直在阅读 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