zoukankan      html  css  js  c++  java
  • 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);
                }
    
            }
        }
    }
  • 相关阅读:
    谷歌浏览器调试
    建立标准编码规则(五)-工程结构
    Ruby页面,循环赋值方法(类似java EL表达式赋值)
    ruby--Hash方法汇总
    ant design环境搭建过程中遇到的问题--Windows-dva-cli
    Linux下Nodejs安装(完整详细)
    linux chmod命令使用
    EL表达式获取日期时间类型后格式化的问题
    百度网盘视频资源
    Eclipse插件:mybatis generator的使用步骤
  • 原文地址:https://www.cnblogs.com/rosizel/p/3859384.html
Copyright © 2011-2022 走看看