所谓的IO完成端口,就是把对一种资源的多个请求放在一个队列里面,使之与端口相关联,然后创建多个工作线程去处理这些请求。怎么处理呢?每个线程在空闲的时候就会去查询以端口为代表的这个队列,如果有请求,就处理。
解决方案 »
- windows权限问题,(希望高手解答)
- 新手问题:在什么位置创建动态按钮.
- vc安装出现问题!
- 如何利用winpcap实现远程监测?
- HTML数据是gzip如何解压。。。。。。。。。。。。。。。。。。
- 怎样控制IE连续打印以及页脚页眉的打印,分数好说。
- 怎么让CEdit响应ctrl+c,ctrl+v,ctrl+x快捷键!
- 我重dialog继承下来的类怎么没有 ON_WM_EraseBkgnd 啊,怎么让它出来哦
- 我想用VC 做个状态跟踪窗口,跟踪我程序里的有些变量,要求窗口可以悬浮在低端,和任意位置。
- 为什么这个消息传递不起作用?请大家帮忙看看。
- 弹出FormView 100分
- 专家精密分析:MFC内部结构
所谓的IO完成端口,就是将一个资源(可以扩展为多个),与一个驱动事件相关系,然后让一个线程队列来等待驱动事件,处理与该资源相关的外部请求或通知.每个线程都是在等待一个关联驱动(驱动线程作业)事件,当有事件通知到来时再针对事件当中传过来的资源进行相应的处理.(通常在这里理解为等待完成事件,而不是查询,至少从利用IOCP编程的开发人员来说,已经不再是主动的查询,而仅仅只是等待完成事件,只是这个完成事件,除了由相关资源发送出来以外,也可能由外部为了某种目的(比如关闭线程)来伪造.
等线程完成工作后通知你,以适合WINDOWS系统的特别,期间你可以从原来的等待模式下解放出来,
去进行其他任务,直到接收到完成消息。。
它的实质是多线程+消息
GetQueuedCompletionStatus是等待而不是查询,
这个等待是要阻塞在那里一直等的,是不是?直到该工作线程被关闭或者等到获得资源控制权?