想想你在做什么。您正在调用的版本
TIdHTTP.Get()
返回
String
,但您正在下载“无限”流。这意味着
Get()
正在不断地从套接字读取数据,并分配越来越多的内存来保存数据,以便最终将其转换为
一串
。因此,随着时间的推移,CPU使用率可能会很高,特别是当您在多个线程之间使用多个CPU时。
作为测试,试着告诉
获取()
丢弃它下载的数据,而不是将其缓存在内存中,并查看CPU使用情况:
HTTPClient.Get('http://plazacam.studentaffairs.duke.edu/axis-cgi/mjpg/video.cgi?resolution=640x480', TStream(nil));
TIdHTTP
并不是真正为处理“无限”流而设计的,除非您提供
TStream
能够接收“无限”数据(如
TIdEventStream
),或启用
hoNoReadMultipartMIME
标记服务器是否使用MIME传递流数据,在这种情况下,您可以自己阅读流数据,如本文所述:
New TIdHTTP hoNoReadMultipartMIME flag