日期:2014-05-17  浏览次数:20844 次

C# 下载文件假死
用C#下载远程文件,因为下载几个文件,耗时需要十分钟左右,造成程序假死,请问如何解决??
 private void StartDownLoadBT_Click(object sender, EventArgs e)
  {
  ……………………初始化参数
  StartThread();
  }
  private void StartThread()
  {
  if (m_thread != null)
  {
  if (this.m_thread.IsAlive)
  {
  this.m_thread.Abort();
  this.m_thread = null;
  }
  }
  m_thread = new Thread(new ThreadStart(DownLoadData));
  m_thread.Start();
  }
  private void DownLoadData()
  {
  ………………………………
  下载文件,耗时几分钟,期间不调用控件
  }
 
请问哪位大神知道如何设置线程才能不假死????

------解决方案--------------------
怎么下载?对方支持什么下载协议?
------解决方案--------------------
使用backgroundworker类,开始下载后弄个进度条。参考
------解决方案--------------------
不是有个异步下载的方法么?
不用线程
C# code
  using (System.Net.WebClient wc = new System.Net.WebClient())
                                {
                              wc.DownloadFileAsync(new Uri(url), filePath);
                                }

------解决方案--------------------
常用解决方法:开多线程
------解决方案--------------------
程序主窗口假死的话backgroundworker可以搞定,

或者开线程,主界面做个状态条,用委托更新状态条,显示下载文件名就行了