首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于进度显示解决办法

2012-01-02 
关于进度显示我在统计的时候用一个thread,然后想做一个显示进度的界面该怎么做才不与原来的thread冲突?[解

关于进度显示
我在统计的时候用一个thread,然后想做一个显示进度的界面
该怎么做才不与原来的thread冲突?

[解决办法]
用委托实现。如:
class Class1
{
public delegate void ProcessingHandler(int index,int count);

public event ProcessingHandler Processing;

Thread thread=new Thread(new ThreadStart(run));

public void Work()
{
thread.Start();
}

void run()
{
for (int i=0,j=1000;i <j;i++)
Processing(i,j);
}
}

然后在你的form中如下使用:
ProcessingHandler updateProgressBar=new ProcessingHandler(OnUpdateProgressBar);
Class1 objCls=new Class1();
objCls.Processing+=new ProcessingHandler(objCls_Processing);
objCls.Work();

void objCls_Processing(int index,int count)
{
this.Invoke(updateProgressBar,index,count));
}

void OnUpdateProgressBar(int index,int count)
{
pb.Maximnue=count;
pb.Value=index;
}

热点排行