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);
                }
    
            }
        }
    }
  • 相关阅读:
    oracle常规操作
    shell 的算数运算
    sed 命令小结
    swing
    索引失效
    poj--1258--Agri-Net(最小生成树)
    CodeForces--626C--Block Towers (二分)
    Codeforces--629A--Far Relative’s Birthday Cake(暴力模拟)
    Codeforces--629B--Far Relative’s Problem(模拟)
    hdoj--5104--Primes Problem(素数打表)
  • 原文地址:https://www.cnblogs.com/rosizel/p/3859384.html
Copyright © 2011-2022 走看看