socket 的异步处理如不再需要了,需不需要 CancelIO ????比如我对一个 socket 用 WSARecv 异步方式来读然后用 WSAWaitForSingleObject 来等一个超时,如果超时了,那我就不再等待,认为该操作无效。这时我需不需要用 CancelIO 来取消在句柄上的IO操作呢?
但 WinSocket API 里没有 WSACancelIO 之类的。CancelIO 是属于文件操作类的只有一个 WSACancelAsyncRequest , 帮助上说,这个API 是用来取消 WSAAsyncGetXByY 这个请求的。到底该不该用 CancelIO,或用哪个函数来取消IO操作?
但 WinSocket API 里没有 WSACancelIO 之类的。CancelIO 是属于文件操作类的只有一个 WSACancelAsyncRequest , 帮助上说,这个API 是用来取消 WSAAsyncGetXByY 这个请求的。到底该不该用 CancelIO,或用哪个函数来取消IO操作?
我有个进一步的问题现在还想不通:因为 CancelIO 要求在调用 IOCP API 相同的线程中调用,这样造成了需求操作非常的麻烦,请问那位有高见?
-------------------------------------------------------
广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711