进度条需要自己来控制进度,刷新也要自己控制。可以用timer实现,也可以在你程序运行过程中设定几个通知点来刷新进度条。

解决方案 »

  1.   

    或者采用回调方法,每发送一定大小BYTE的数据,回调一次界面的刷新显示函数
      

  2.   

    简单例子,线程启动ProgressBar
    using System.Threading;
    ...
    Thread trd;
    ...
    Form_Load里面增加
    trd = new Thread(new ThreadStart(this.ThreadTask));
    trd.IsBackground = true;
    ...
    /// <summary>
    /// 进度条的线程,pbSaveBar为进度条名称
    /// </summary>
    private void ThreadTask()
    {
    int stp;
    int newval;

    while(this.pbSaveBar.Value<this.pbSaveBar.Maximum)
    {
    stp=this.pbSaveBar.Step;
    newval = this.pbSaveBar.Value + stp; if (newval > this.pbSaveBar.Maximum)
    newval = Convert.ToInt32(this.pbSaveBar.Maximum/2);

    this.pbSaveBar.Value = newval; Thread.Sleep(100);
    }
    }
    ...
    调用方法
    //progressbar 启动运行线程
    trd.Start();
    ...
    App或者Form或者调用结束时需要调用
    trd.Abort();