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

关于进度条实时更新的问题
我的程序在执行某个函数操作的时候用时比较长,所以我想加个进度条,将这个函数运行的时间过程同步显示在进度条上,也即是如下面代码所示:我在点击btnRun之后,将CreateNewData这个函数运行的时间动态实时更新显示在ProcessBar1进度条上,请问要如何处理?


private void btnRun_Click(object sender, EventArgs e)
        {
            CreateNewData(A,B,C);
        }

//主要函数,执行时间比较久
private void CreateNewData(ArrayList alImport,int Num,string sCoordinate)
        {
           ......
        }

------解决方案--------------------
btn1_Click中开辟线程 

Thread th = new Thread((ThreadStart)delegate()
{
    while(...) //耗时操作
    {
     //do something
     this.Invoke((Action)delegate() //更新界面
     {
          progressBar1.Value = ...
     });
    //do something
    }
});
th.Start();