一、来由
C#是无法在子线程中更新由主线程创建的界面控件的参数,所以需要进行一些特殊的操作。这个操作就叫做“委托”。
二、以在子线程中更新主界面ProcessBar控件为例
public delegate void UpdateProcessBar(int count);//声明委托类型
UpdateProcessBar MyUIProcessBar;//定义一个委托变量
private void DownloadProcessBar(int count)
{
DownloadProcessBar.Value=count;
}
MyUIProcessBar=new UpdateProcessBar(DownloadProcess);//将委托变量与某一个方法进行绑定
this.Invoke(MyUIProcessBar,new object[]{process})//在需要使用processBar的地方调用,process为当前实际的process值