我有大约60,000个图片网址,我正在使用多个webclient实例下载这些图片来下载这些图片。但是在下载图像时,它会在大约15000张图像之后给出SystemOutOfMemory Exception。那么如何优化webclient以便它不会出现此异常。
我的代码看起来像这样:
if (!File.Exists(download_image_path))
{
wc = new System.Net.WebClient();
wc.DownloadFile(imgURL, download_image_path);
wc.Dispose();
}
它正在循环运行。
答案 0 :(得分:1)
使用Object Pool设计模式。
不使用60000个webclient实例(从您的响应中查看),而是使用10/15/100,无论什么是最佳的。另外,keep是可配置的。
答案 1 :(得分:1)
一次取一些网址并将其发送到另一个功能,或者我建议您使用另一个应用程序,当这些图像完全下载然后关闭该应用程序,然后启动另一个应用程序并将另一批网址作为命令行传递争论,会有所帮助。
答案 2 :(得分:0)
一次下载一张图片?如果速度不是问题,那将是最简单的事情。
答案 3 :(得分:0)