using System; using System.ComponentModel; using System.Windows.Forms; namespace WindowsApplication4 ... { /**//// <summary> /// gui 类 /// </summary> public partial class Form1 : Form ...{ public Form1() ...{ InitializeComponent(); } private void button1_Click(object sender, EventArgs e) ...{ //用子线程工作 new System.Threading.Thread(new System.Threading.ThreadStart(StartDownload)).Start(); } //开始下载 public void StartDownload() ...{ Downloader downloader = new Downloader(); downloader.onDownLoadProgress += new Downloader.dDownloadProgress(downloader_onDownLoadProgress); downloader.Start(); } //同步更新ui void downloader_onDownLoadProgress(long total, long current) ...{ if (this.InvokeRequired) ...{ this.Invoke(new Downloader.dDownloadProgress(downloader_onDownLoadProgress), new object[] ...{ total, current }); } else ...{ this.progressBar1.Maximum = (int)total; this.progressBar1.Value = (int)current; } } } /**//// <summary> /// 下载类 /// </summary> public class Downloader ...{ //委托 public delegate void dDownloadProgress(long total,long current); //事件 public event dDownloadProgress onDownLoadProgress; //开始模拟工作 public void Start() ...{ for (int i = 0; i < 100; i++) ...{ if (onDownLoadProgress != null) onDownLoadProgress(100, i); System.Threading.Thread.Sleep(100); } } }}