public void SaveUrlPics(string url, string path, Random ran)
{
WebClient wc = new WebClient();
string address = path + "\\" + CreateRandomCode(8) + GetSuffix(path);
try
{
//在这里我想把当前线程等待
wc.DownloadFile(url, address); wc.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wc_DownloadFileCompleted);
}
catch (Exception ex)
{
ListUrl.writeLog(ex.Message);
}
finally
{
wc.Dispose();
}
} void wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
//下载完成后,放走线程。
}
我希望下载图片是完整的。如果我没有下载完,当前线程就要等待我WebClient 下载完才能走。现在我有点矛盾,本来就是同一个线程,我应该怎么等待,怎么放走???因为lock是防止多线程同步的!!!但是现在好头晕!!!
另外,我还真不知道在 ASP.NET中自己的多线程还能否工作。
不知道LZ想实现的是不是下载后检测一下图片的大小,看是否下载完了.
我是这样调用这个foreach(string url in list){
SaveUrlPics(url,param1,param2);
}这个下载量很大的啊。有的下载成功,有的少了。可能是网络的问题,比如太多了,超时。