谢谢

解决方案 »

  1.   

    Winform哇
    Thread哇!!
    多个Thread间互相怎么传值哇??
    不知道static变量行不行哇!!
      

  2.   

    我是这样做的
    在导数据前统计数据的总数,赋给进度条的MAX,然后,每导好一个单元的数据对进度条的step+1,
    这样就行了。
    如果你是多个线程在导数据,可以定义一个static变量,对其改变数值,然后将static变量赋给进度条的step(事先还是要统计数据总量),这样也行。
    不知道我回答的,你满意吗?如果还有问题,大家可以谈论下。
      

  3.   

    http://www.putfly.com/show.aspx?id=130&cid=11
      

  4.   

    以下是从我的程序里面抓出来的代码,你根据你的程序改改:public event DownloadEventHandler ProgressChanged; //定义一个事件用来通知主线程
    private void RaiseProgressChanged(long blockSize)//通知主线程的函数
    {
    if(ProgressChanged != null)
    ProgressChanged(this, new DownloadEventArgs(blockSize));
    }
    在你的倒数据的线程里面,当进度变化需要通知进度条时,触发这个事件
    this.RaiseProgressChanged(di.BlockSize);
    在你的UI Form里面,注册这个时间的监听函数:
    downloader.ProgressChanged += new DownloadEventHandler(this.OnFileProgressChanged);
    private LongDelegate fileProgressChanger; // 代理声明
    private void OnFileProgressChanged( object sender, DownloadEventArgs e )
    {
    progressBar1.Invoke(fileProgressChanger, new object[] {e.lValue}); //invoke会新建一个单独的线程更新进度条
    }
    private void ChangeFileProgress(long blockSize)
    {
    //int pValue = (int) ((blockSize / _currentFileSize) * 1000 );
    //progressBar1.Value = pValue;
    progressBar1.PerformStep();
    }