.net 中的异步套接字是无线程的吗?

2024-01-15

From http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx看起来,这种类型的套接字使用多个线程,但从我的想法来看,异步套接字可以而且应该在单线程(或最少有限数量的线程)中运行,因为它们只是来自工作状态机的回调就像智能调度程序一样。

我的问题是:异步套接字是否会产生与连接一样多的线程,或者无论应用程序处理多少个连接,都会产生多少线程的上限。


是和不是。一切real工作由 TCP/IP 驱动程序堆栈完成。它可以轻松处理多个不完整的 IRP 请求。当其中一个完成时,会在线程池线程上触发 APC,该线程最终会调用完成回调。底层操作系统对象称为“I/O 完成端口”,您可以在此处阅读更多相关信息SDK文章 http://msdn.microsoft.com/en-us/library/aa365198%28VS.85%29.aspx.

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

.net 中的异步套接字是无线程的吗? 的相关文章

  • 在 Javascript 中本地化字符串

    我目前正在使用 resx文件来管理我的 NET 服务器端资源 我正在处理的应用程序还允许开发人员将 JavaScript 插入各种事件处理程序中以进行客户端验证等 对我来说本地化 JavaScript 消息和字符串的最佳方法是什么 理想情况
  • 为什么假设 send 可能返回的数据少于在阻塞套接字上传输的请求数据?

    在流套接字上发送数据的标准方法始终是调用 send 并写入一大块数据 检查返回值以查看是否发送了所有数据 然后再次调用 send 直到整个消息被接受 例如 这是一个常见方案的简单示例 int send all int sock unsign
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • 我应该如何在 VB.NET 中进行转换?

    所有这些都相等吗 在什么情况下我应该选择其中一个而不是其他 var ToString CStr 变量 CType 变量 字符串 DirectCast 变量 字符串 编辑 来自的建议不是我自己 https stackoverflow com
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 理解 C++11 中的 std::atomic::compare_exchange_weak()

    bool compare exchange weak T expected T val compare exchange weak 是 C 11 中提供的比较交换原语之一 它是weak即使对象的值等于 它也会返回 falseexpected
  • 如何使用 select 将数据从服务器发送到客户端

    我在一些教程的帮助下想出了一个代码 用于使用选择功能与客户端连接并接受来自客户端的消息 现在我想做的是在服务器需要时将数据发送到特定的客户端 如何做到这一点 提前致谢 服务器代码 include
  • 元素属性语法和属性属性语法之间有语义差异吗?

    我认为元素属性语法和属性属性语法在语义上没有太大区别 但是 我发现一定有什么不同 例如 下面的例子只是演示了一个简单的触发器
  • 文件显示在 Visual Studio 的解决方案资源管理器中,并带有快捷方式图标。这意味着什么?

    我已经下载了FParsec的库源代码 所有文件都带有快捷方式符号 这是什么意思 当该项目添加到该项目时 它被添加为链接Project gt Add Existing Item gt Add as Link 该文件很可能托管在目录结构中的另一
  • 将标签文本的一部分设置为粗体

    有什么办法可以使一部分label text要大胆吗 label text asd string 想要string部分要加粗 有可能吗 这怎么办 下面的类说明了如何通过覆盖来做到这一点OnPaint in the LabelWinForms
  • 如何处理来自单独线程的窗口消息?

    我希望启动一个单独的线程来处理窗口消息 通过阻塞 GetMessage 循环 但之后仍然在初始线程中创建窗口 在单独的线程中 一旦启动 我就会调用PeekMessage使用 PM NOREMOVE 确保消息队列存在 有必要吗 然后 Atta
  • 最好的 Flash 音频/视频 + 交互服务器?

    我正在寻找有关 Flash 实时服务器的建议 目前 我们使用 Moock 的组合Unity http www moock org unity and Red5 http osflash org red5 但有几个问题 首先 我们正在转向 A
  • C# 7 表达式主体构造函数

    在 C 7 中 如何使用 2 个参数编写这样的表达式主体构造函数 public Person string name int age Name name Age age 一种方法是使用元组和解构来允许在一个表达式中进行多次赋值 public
  • WCF 服务调用包装器

    为 WCF 服务调用创建包装器的最佳实践是什么 我认为有必要 为了在同一个地方监视所有呼叫 我正在考虑使用这种代码 这是正确的想法吗 RetType t ServiceExecutionContext
  • 可以访问每个套接字的 TCP 统计数据/信息吗? (C/C++)

    我需要一些信息 例如我创建的特定 TCP 套接字发生的重新发送包 数据包丢失的数量 有人知道如何直接从我的 C C 程序访问或请求此类信息吗 也许是 Linux 特有的东西 或者我是否需要 作为解决方法 捕获和分析我自己的流量 提前致谢 通
  • 序列包含多个元素

    我在通过 Linq 获取 RhsTruck 类型的列表并显示它们时遇到一些问题 RhsTruck 只有属性 品牌 型号 序列号 等 RhsCustomer 具有 CustomerName CustomerAddress 等属性 我不断收到错
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • Android 中的处理程序与异步调用

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

随机推荐