问题描述
- 在编写一个从谷歌下载影像图的程序,下载过程中,网速时快时慢,求高手指点
-
这个程序开了多线程,一张图片一张图片的下载,如果,下载失败,在While循环里,Sleep一下,直到下载成功,才退出循环,这样确保每一张图片下载成功,求高手指点啊,是不是线程开得太多了,有一百多个,还是while循环处理的问题
解决方案
100多线程没有什么意义,10个线程基本上就够了。
sleep会导致当前线程休眠,看你是不是用错了。
解决方案二:
线程内处理代码如下:
bool bDownLoad = CTileDownload::StartDownLoad(tileUrl, strFile);//向服务器发送请求下载图片并保存,
while (!bDownLoad)//如果失败,进入循环,知道下载成功
{
Sleep(/*1250*/lastX*lastY);
bDownLoad = CTileDownload::StartDownLoad(tileUrl, strFile);
}
有多线程处理的,运行过程中网速与CPU占用波峰波谷 CPU一上来网速就下去了,这应该不正常吧,高手指点啊
解决方案三:
可能是因为墙墙的问题吧
时间: 2024-10-24 11:49:51