1、虽然MSDN说InternetQueryDataAvailable、InternetReadFile这两个API是同步的,但实际上这两个API也可以异步调用。当调用这两函数时,如果返回FALSE,且GetLastError返回ERROR_IO_PENDING,那么表示这是一个异步调用。对于异步调用可以采用事件进行同步。当WaitForSingleObject返回时,数据已经拷贝到我们的缓冲区了,切记。。。
2、正如帮助文档所言,InternetQueryDataAvailable是不可靠的。因为这个API将响应头的"Content-Length" 认为文件的长度,但是“ Content-Length”是不准的。所以尽量少使用这个API。
3、在异步调用下,必须在这两个API的调用前,进行一次WaitForSingleObject,否则后果无法想象。
本文介绍了InternetQueryDataAvailable和InternetReadFile两个API的实际使用情况,包括它们的同步和异步调用方式,以及如何正确处理异步调用中的事件同步。还提到了InternetQueryDataAvailable的局限性,并给出了一些注意事项。
3186

被折叠的 条评论
为什么被折叠?



