我試着從URL列表中下載了一些照片,並將它們添加到一個位圖列表:下載多張影像的HttpWebRequest
for (int i = 0; i < matches.Count; i++)
{
Bitmap img = DownloadImage(matches[i].Groups[1].Value);
if (img != null)
{
img = img.Clone(new Rectangle(0, 0, img.Width, img.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
imagelist.Add(img);
}
}
這裏是downloadImage功能:
private static Bitmap DownloadImage(string uri)
{
try
{
Bitmap bm = null;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Proxy = null;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if ((response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Moved || response.StatusCode == HttpStatusCode.Redirect) && response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase))
{
using (Stream inputStream = response.GetResponseStream())
{
bm = new Bitmap(inputStream);
}
}
return bm;
}
catch
{
return null;
}
}
的問題是,它減慢這種方式,我需要一種方式來同時下載它們,而不是等待一個完成來開始下一個。 即時通訊使用.net 4.0,所以我不能使用4.5新的異步方法。 幫助,將不勝感激。
你不能使用線程? – 2015-02-06 05:59:30
網址列表有時包含100個網址,我無法打開100個線程。 – Meydan 2015-02-06 06:02:11
檢查https://msdn.microsoft.com/en-us/library/86wf6409(v=vs.100).aspx。異步方法可用於.net 4.0 – Amit 2015-02-06 06:03:16