由于小弟被老板训了几天实在搞不掂这个问题!希望有哪一位好心人帮忙解决一下!!。。要不然连饭都没吃了。。
  我的工具是一个线程池模式.每秒都需要处理不同的网页,所以在这里我不想使用IDHTTP(因为他的效率很差。而Wininet的速度是它的十倍有余,测试过很多次得到的结果)..但是我用了InternetOpen,InternetOpenUrl来打开网页的话。他的速度虽然快。但是延时问题很难解决。。所以来求助各位。。 

解决方案 »

  1.   

    补充一下
       我的代码如下
       
        function GetWebPage(const Url: string):string;
    var
      Session,
      HttpFile:HINTERNET;
      szSizeBuffer:Pointer;
      dwLengthSizeBuffer:DWord;
      dwReserved:DWord;
      dwFileSize:DWord;
      dwBytesRead:DWord;
      Contents:PChar;
    begin
      try
        Session:=InternetOpen('',0,niL,niL,0);
        HttpFile:=InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
        dwLengthSizeBuffer:=1024;
        HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
        GetMem(Contents,dwFileSize);
        InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
        InternetCloseHandle(HttpFile);
        InternetCloseHandle(Session);
        Result:=StrPas(Contents);
        FreeMem(Contents);
      except
        on e:Exception do
          Result:=E.Message;
      end;
    end;
       
        
       怎么样才能让他支持延时...本人也测试过使用InternetSetOption(hSession, Internet_OPTION_CONNECT_TIMEOUT, @TimeOut, 4);。源码地址:http://blog.csdn.net/siow/archive/2005/07/17/427101.aspx
        但是也没有解决问题。原因是当一个站点无法打开的时候他是可以将延时设置生效。但一旦某一个站点他是能打开的。就是很非常慢的时候他就会一直在等着网页回显消息。也就是说如果一个站点需要一分多钟打开的话他就一直在等着。
        我想知道的是能不能让他在规定时间断开呀分少的话可以再加!!拜托了
      

  2.   

    关系到吃饭问题帮定!具体是要做什么功能的啊?网页相关的用mshtml.pas很好弄啊
      

  3.   

    希望那个函数能在特定的时间内停止。也就是像IDHTTP的延时功能一样不知道如何实现