我迭代一個foreach loop
在我解析一個字符串是這樣的:如何在foreach循環中執行「requestData」的並行處理?
我想解僱我的字符串「imageUrl
」在HttpWebRequest
並行請求。意思是一次4請求和響應類型的系統(用於我的核心實用程序)。
我該怎麼辦呢?
代碼:
foreach (var item in requestData)
{
try
{
string imageUrl = Convert.ToString(item.ImageUrl);
imageUrl = imageUrl.Replace('\r', ' ');
//It is Use for saving at our project location.
string saveLocation =
@AppDomain.CurrentDomain.BaseDirectory + @"Image\someone.jpg";
byte[] imageBytes;
try
{
HttpWebRequest imageRequest =
(HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
FileStream fs = null;
BinaryWriter bw = null;
fs = new FileStream(saveLocation, FileMode.Create);
bw = new BinaryWriter(fs);
bw.Write(imageBytes);
fs.Close();
bw.Close();
id = Convert.ToString(item.Id);
// string ImageUrl= Convert.ToString(dr["ImageUrl"]);
ImageProcess(id);
}
catch (Exception)
{
log.Info("Image Url Wrong!!!");
drCurrentRow = dt.NewRow();
drCurrentRow["Id"] = Convert.ToString(item.Id); ;
drCurrentRow["Label"] = "Error";
drCurrentRow["Score"] = 0;
drCurrentRow["Flag"] = "1";
dt.Rows.Add(drCurrentRow);
//drCurrentRow = dt.NewRow();
dt.AcceptChanges();
}
finally
{
fs.Close();
bw.Close();
}
}
catch (Exception e)
{
log.Info(e);
}
}
BulkInsert();
}
我想解僱我的字符串imageUrl
在HttpWebRequest
並行請求。
我該怎麼辦呢?
可能的複製[發送多的WebRequest中的Parallel.For(http://stackoverflow.com/questions/7477261/send-multiple-webrequest-在平行的換) –