首页 > 代码库 > OperationSystemForm : BaseWorkerForm
OperationSystemForm : BaseWorkerForm
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() { // RefreshForm(); } public bool identityByState(JobStatus jobStatus) { bool flag = true; foreach (BaseJob childjob in jobs) { if (childjob.Status != jobStatus) { flag = false; break; } } return flag; } public OperationSystemForm(CheckoutContext checkoutContext,CheckoutStep checkoutStep):base(checkoutContext,checkoutStep) { this.checkoutStep = checkoutStep; InitializeComponent(); timer.Tick += new EventHandler(timer_Tick); ResetForm(); } private void SetFormStatus() { foreach (BaseJob childj in jobs) { switch (childj.Status) { case (JobStatus.Error): this.status = FormStatus.Error; break; case (JobStatus.OK): this.status = identityByState(JobStatus.OK) ? FormStatus.OK : status; break; case (JobStatus.Waiting): this.status = identityByState(JobStatus.Waiting) ? FormStatus.Waiting : status; break; default: break; } } } public override void Execute(object obj) { base.Execute(obj); ReportFormStatusChanged(); foreach (BaseJob job in jobs) { job.JobStateChangeEvent += StateChangeEvent; ThreadPool.QueueUserWorkItem(new WaitCallback(job.Execute),null); } 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(); SetFormStatus(); if(checkoutContext.messageList!=null) { if (listBox.Items.Count != 0) listBox.Items.Clear(); foreach (string m in checkoutContext.messageList) listBox.Items.Add(m); } } private void timer_Tick(object sender, EventArgs e){ RefreshForm(); } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。