当前位置: 代码迷 >> ASP.NET >> 一个线程的lock应该如何写!
  详细解决方案

一个线程的lock应该如何写!

热度:3743   发布时间:2013-02-25 00:00:00.0
一个线程的lock应该怎么写!!!
C# code
 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的又不需要说需要刷新前台页面??
另外,我还真不知道在 ASP.NET中自己的多线程还能否工作。
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
asp.net 是可以多线程,不过好像用在这里意义不大吧,
不知道LZ想实现的是不是下载后检测一下图片的大小,看是否下载完了.
------解决方案--------------------------------------------------------
关注
------解决方案--------------------------------------------------------
能否如操作系统一样开若干个P,V进程。
  相关解决方案