读书人

请教怎么安全中断InternetReadFile

发布时间: 2012-06-13 12:30:18 作者: rapoo

请问如何安全中断InternetReadFile?
断网、主机端无响应或其他情况都可能造成InternetReadFile一直等待无响应的现象,并无法正常退出。

见微软文章http://support.microsoft.com/kb/263754/


这时,释放句柄等操作都不能从InternetReadFile的等待中退出来,请问该如何安全的中断它?

我用的是AUHTTP组件,以下是释放代码

Assembly code
procedure TauCustomHTTP.CloseHTTPHandles;begin  if hFile <> 0 then   begin    CloseHandle(hFile);    hFile := 0;   end;  if hRequest <> nil then   begin    InternetCloseHandle(hRequest);    hRequest := nil;   end;  if hConnect <> nil then   begin    InternetCloseHandle(hConnect);    hConnect := nil;   end;  if hSession <> nil then   begin    InternetCloseHandle(hSession);    hSession := nil;   end;end;



微软文章所述的用HTTP 1.0的方法显然不适合,因为必须改用户的IE设置才生效,而且,有可能造成无法访问某些网页。


[解决办法]
InternetReadFile执行后,你应该无法干预,只能等待其结果返回,想不出现无响应的话,可以搞一个线程去InternetReadFile

读书人网 >.NET

热点推荐