首页 > 代码库 > OperationSystemForm

OperationSystemForm

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);            }        }    }}