/// <summary> /// 单项工程赋值 /// </summary> /// <param name="Engineering"></param> /// <param name="dx"></param> private void SetEngineering(_Engineering Engineering, 单项工程 dx) { //添加到项目结构表 (this.m_Business as _Pr_Business).Add(Engineering); if (dx.单位工程 == null) { return; } string[] fNames = this.FileName.Split('.'); if (fNames.Length < 2) { MsgBox.Alert("文件类型错误!"); return; } foreach (单位工程 item in dx.单位工程) { XmlUnitWorker unit = new XmlUnitWorker(this.m_Business, item, Engineering, this); unit.FileType = fNames[1]; unit.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(unit_RunWorkerCompleted); unit.RunTreadPoolCompleted += new RunTreadPoolCompleted(unit_RunTreadPoolCompleted); unit.js = this.建设项目; unit.Begin(); } }
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e) { if (e.ProgressPercentage == -1) { SetLabCountText((++CurrCount).ToString()); //为 -1的时候认为是某个单位工程中的操作 SetText(e.UserState.ToString()); } else { XmlUnitWorker obj = e.UserState as XmlUnitWorker; if (obj != null) { this.progressBarControl1.Position = e.ProgressPercentage; } } }
/// <summary> /// 当一个单位工程完成后调用 /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void unit_RunTreadPoolCompleted(object sender, object args) { XmlUnitWorker x = sender as XmlUnitWorker; ProjWorker.ReportProgress(++CurCount, x); if (x != null && !this.m_IsZJF) { this.m_IsZJF = x.IsZJF; } if (this.CurCount == this.UnitCount) { //结束 // this.form.ActionFace.OpenNewBussinessForm(this.m_Business); Completed = true; } }