看了渔翁的这篇博客
http://blog.csdn.net/knight94/archive/2006/05/27/757351.aspx
之后还是不懂已知类Download是用于下载东西的
在Form窗体中要如何更新ProgressBar呢?
因为下载过程中肯定要传递2个参数(文件当前大小和文件的总大小)给Form中的ProgressBar 所以感到束手无策啊
希望指点一下 谢谢Form1_Load(object sender,EventArgs e)
{
      Download down = new Download("path","url")
      Thread downThread = new Thread(new ThreadStart(down.Start));
      downThread.Start();
}
如何让downThread线程边执行边传递2个参数给窗体呢

解决方案 »

  1.   

    建一个委托,要一个int 参数,然后调用down.Start方法时带上,那个委托,委托就是你在窗体里声明的方法(用来更新Progress的)。
      

  2.   

    建一个委托,要一个int 参数,然后调用down.Start方法时带上,那个委托,委托就是你在窗体里声明的方法(用来更新Progress的)。
      

  3.   


    ///Form窗体
    public delegate UpdateProgress(int nvalue);B
    //Download类
    public delegate UpdateProgress(int nvalue);
    是像A这样 还是 像B这样down.Start方法时带上(不会出现线程间操作无效: 从不是创建控件“progressBar1”的线程访问它吗)
      

  4.   

    假设我把把问题简单化class Download
    {
         public int max=200;
         public int nvalue;
         public void Start()
         {
                for(nvalue=0; nvalue<max;nvalue++)
                {
                      Thread.Sleep(200);
                 }
          }
    }----------------------------------------------------
    Form窗体中
    Form1_Load(object sender,EventArgs e)
    {
         Download down = new Download();
         Thread downThread = new Thread(new ThreadStart(down.Start));
          downThread.Start();
    }如何在执行过程中让nvalue和max的值拿给Progress用呢
      

  5.   

    看看http://zhidao.baidu.com/question/30856965.html
    多线程控制主窗体控件。