using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; using WindowsFormsApplication3.Enums; using WindowsFormsApplication3.DataStorge; using WindowsFormsApplication3.Jobs; using WindowsFormsApplication3.Jobs.Operation_System; namespace WindowsFormsApplication3.FormPage { public partial class OperationSystemForm : BaseWorkerForm { protected int finishedChildFormNO; protected CheckoutStep checkoutStep; public void StateChangeEvent(CheckoutStep cStep,JobStatus jobstatus) { if(cStep==this.checkoutStep) { switch (jobstatus) { case JobStatus.Error: status = FormStatus.Error; ReportFormStatusChanged(); break; case JobStatus.OK: foreach (BaseJob job in jobs) { if (job.Status == JobStatus.OK) status = FormStatus.OK; checkoutContext.logData.Finish(checkoutStep, ""); } break; default: break; } } RefreshForm(); } public OperationSystemForm(CheckoutContext checkoutContext,CheckoutStep checkoutStep):base(checkoutContext,checkoutStep) { this.checkoutStep = checkoutStep; InitializeComponent(); ResetForm(); } public override void Execute() { base.Execute(); ReportFormStatusChanged(); int i = 0; foreach (BaseJob job in jobs) { job.JobStateChangeEvent += StateChangeEvent; ThreadPool.QueueUserWorkItem(new WaitCallback(job.Execute),i); i++; } checkoutContext.logData.Start(checkoutStep, ""); } public override void ResetForm() { base.ResetForm(); jobs.Add(new Job1(checkoutContext,checkoutStep)); jobs.Add(new Job2(checkoutContext, checkoutStep)); } public override void RefreshForm() { base.RefreshForm(); if(checkoutContext.messageList!=null) { foreach (string m in checkoutContext.messageList) this.listBox.Items.Add(m); } } } }
OperationSystemForm
时间: 2024-10-13 18:13:03