断网、主机端无响应或其他情况都可能造成InternetReadFile一直等待无响应的现象,并无法正常退出。见微软文章http://support.microsoft.com/kb/263754/
这时,释放句柄等操作都不能从InternetReadFile的等待中退出来,请问该如何安全的中断它?我用的是AUHTTP组件,以下是释放代码
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设置才生效,而且,有可能造成无法访问某些网页。