关于进度条实时更新的问题
我的程序在执行某个函数操作的时候用时比较长,所以我想加个进度条,将这个函数运行的时间过程同步显示在进度条上,也即是如下面代码所示:我在点击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();