请问,进度条控件往右跑,其value值变一点,就跑一点,在异步操作中,这个value值是需要提供的,
那么,如果一个非常耗时的、复杂的计算,不知道它计算到那个程度了啊,不知道它异步执行的完成百分比
,这种情况下,怎么做呢?

解决方案 »

  1.   

    你可以这样显示
    1,在异步的事件中,显示完成的内容,如xxx已经完成,yyy已经完成,显示这样的信息。
    2,你还可以在异步开始时先计算总的步骤,异步的时候,完成一次就设置下value就可以了
      

  2.   

    你还可以在异步开始时先计算总的步骤,异步的时候,完成一次就设置下value就可以了顶这个
      

  3.   


    放一个 backGroudWork控件   worker.ProgressChanged += new ProgressChangedEventHandler(ProgessChanged);        public void ProgessChanged(object sender, ProgressChangedEventArgs e)
            {
                this.progressBar1.Value = e.ProgressPercentage;
                //将异步任务进度的百分比赋给进度条           
            }
      

  4.   

    写个委托呗。private delegate void ProgressChanged(int change);
    public ProgressChanged UpdateProgressBar { get;set;}
    public int value = 0;
    public int Value
    {
      get{ return this.value;}
      set{ this.value = value; UpdateProgressBar(value); }
    }...
    ...
    ...数据绑定这么整的。
      

  5.   

     一般我是这样做的
    1.如果确实不好计算进度,就考虑不使用进度条,而用一个LABEL之类的控件提示
    2.先计算好必须要进行的步骤,比如有10个步骤
    3.每完成一步就刷新LABEL的内容如:1/10:连接数据库  2/10:查询内容,虽然看不到详细的进度,但可以知道运行到哪一步作为程序来说,要不要把运行进度告诉用户,对程序是没有任何影响的,进度条只会产生较好的用户感受,而进度条只是众多增强用户感受的方式之一,不必非得要用他,达到目的就行。