这个问题来自社区提问,代码保留一份用来以后回答 usingSystem;usingSystem.ComponentModel;usingSystem.Windows.Forms;namespaceWindowsApplication4{///<summary>///gui类///</summary>publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){//用子线程工作newSystem.Threading.Thread(newSystem.Threading.ThreadStart(StartDownload)).Start();}//开始下载publicvoidStartDownload(){Downloaderdownloader=newDownloader();downloader.onDownLoadProgress+=newDownloader.dDownloadProgress(downloader_onDownLoadProgress);downloader.Start();}//同步更新uivoiddownloader_onDownLoadProgress(longtotal,longcurrent){if(this.InvokeRequired){this.Invoke(newDownloader.dDownloadProgress(downloader_onDownLoadProgress),newobject[]{total,current});}else{this.progressBar1.Maximum=(int)total;this.progressBar1.Value=(int)current;}}}///<summary>///下载类///</summary>publicclassDownloader{//委托publicdelegatevoiddDownloadProgress(longtotal,longcurrent);//事件publiceventdDownloadProgressonDownLoadProgress;//开始模拟工作publicvoidStart(){for(inti=0;i<100;i++){if(onDownLoadProgress!=null)onDownLoadProgress(100,i);System.Threading.Thread.Sleep(100);}}}}