public class ZyjProgressBar : System.Windows.Forms.ProgressBar { //用于跨线程访问控件的委托 private delegate void deleByControl(int v); //用于执行的任务 public Action Task { get; set; } private Thread taskThread; private deleByControl setValueDele; public ZyjProgressBar() { //初始化线程 this.taskThread = new Thread(StartTask); this.taskThread.IsBackground = true; //初始化委托 this.setValueDele = new deleByControl(AddValue); } private void StartTask() { this.Task(); } /// <summary> /// 增加进度条的进度 /// </summary> public void AddValue(int value) { if (this.InvokeRequired) { this.Invoke(this.setValueDele, 3); } else { this.Value += value; } } }
时间: 2024-10-09 12:07:41