当前位置:  开发笔记 > 前端 > 正文

.NET如何使用IO线程或IO完成端口?

如何解决《.NET如何使用IO线程或IO完成端口?》经验,为你挑选了1个好方法。

我们有一个.NET应用程序,可以对各种Web服务进行多次并发调用,收集它们的响应,然后根据这些响应进行一些计算.在尝试获得额外性能时,我一直在研究使用通过使用IO完成端口来使用.NET的IO线程的方法.我已经阅读了几个资源,包括Joe Duffy最近出版的"Windows上的并发编程"一书,当我"了解"它们的用处时,我对它们在.NET中的行为有点不清楚,我正在寻找一个简洁的解释.



1> casperOne..:

如果您已经使用异步方法,则可能无需执行任何操作.根据您用于调用Web服务的技术,最终,它将下拉到Win32 API以进行从网络获取字节的调用,为此,它将使用I/O完成端口以处理异步调用.

I/O完成端口背后的基本前提是,在等待I/O操作时,有一个线程池在I/O操作完成时保持等待(假设您已注册使用I/O完成端口).当您的注册操作完成时,来自I/O完成端口线程池的线程将用于处理回调.

当然,在调用I/O完成端口后,您的线程可以继续进行更多工作或终止,您可以选择.

以下内容应该有助于更多地描述它:

I/O完成端口:

http://msdn.microsoft.com/en-us/library/aa365198(VS.85).aspx

内部I/O完成端口(WayBack Machine):

https://web.archive.org/web/20101101112358/http://doc.sch130.nsc.ru/www.sysinternals.com/ntw2k/info/comport.shtml

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有