由于小弟被老板训了几天实在搞不掂这个问题!希望有哪一位好心人帮忙解决一下!!。。要不然连饭都没吃了。。
我的工具是一个线程池模式.每秒都需要处理不同的网页,所以在这里我不想使用IDHTTP(因为他的效率很差。而Wininet的速度是它的十倍有余,测试过很多次得到的结果)..但是我用了InternetOpen,InternetOpenUrl来打开网页的话。他的速度虽然快。但是延时问题很难解决。。所以来求助各位。。
我的工具是一个线程池模式.每秒都需要处理不同的网页,所以在这里我不想使用IDHTTP(因为他的效率很差。而Wininet的速度是它的十倍有余,测试过很多次得到的结果)..但是我用了InternetOpen,InternetOpenUrl来打开网页的话。他的速度虽然快。但是延时问题很难解决。。所以来求助各位。。
解决方案 »
- delphi开发触摸屏程序 显示文字 图片 有没有好的解决方案
- FastReport数据库打印除了这种还有其他什么方法?
- 想做能上传jpg和gif图象的程序该如何实现呢?
- 线程 拜求 高手执教 帮忙调试
- 请教:再WebBrowser里打开htm资源文件里超链接的问题。
- 急求:Delphi中如何进行TreeView之间的拖拽?
- 请问如何将ADOQuery的查询数据导出到TXT文本文件?在线等待!(内有示范数据格式)
- DELPHI XE DataSnap服务端的方法怎么发布不出去?
- listview中Tlistitem和TlistColumn能否相互赋值?
- 如何将OpenDialog嵌在form中
- dbgrid能实现这样的二维表吗?
- delphi如何连sqlserver?
我的代码如下
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
但是也没有解决问题。原因是当一个站点无法打开的时候他是可以将延时设置生效。但一旦某一个站点他是能打开的。就是很非常慢的时候他就会一直在等着网页回显消息。也就是说如果一个站点需要一分多钟打开的话他就一直在等着。
我想知道的是能不能让他在规定时间断开呀分少的话可以再加!!拜托了