首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CreateIoCompletionPort的有关问题

2012-02-02 
CreateIoCompletionPort的问题第三个参数CompletionKey如果填0会怎样?提出这个问题是因为我发现在ACE5.5中

CreateIoCompletionPort的问题
第三个参数CompletionKey如果填0会怎样?

提出这个问题是因为我发现在ACE5.5中,服务器创建客户端连接以后,初始化异步读操作时,调用CreateIoCompletionPort函数的CompletionKey参数为0,而连接并没有收到客户端发出的包

[解决办法]
CompletionKey可以为零,一般用它来传递参数,例如传递HANDLE或者指针
然后在GetQueuedCompletionStatus函数的lpCompletionKey中得到

这里的问题关键在于你的线程处理函数在GetQueuedCompletionStatus返回后
如何处理CompletionKey可以为零的情况

网上很多例子将CompletionKey为零作为退出的标志
[解决办法]
另外,PostQueuedCompletionStatus函数也可以dwCompletionKey为0

PostQueuedCompletionStatus(hComp, 0, 0, NULL)

线程中判断dwCompletionKey为0退出

热点排行