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);
                }
    
            }
        }
    }
  • 相关阅读:
    this引用逸出demo
    BS系统自动更新的实现
    一个好用的java图片缩放及质量压缩方法
    Kindeditor图片粘贴上传(chrome)
    前端模拟“多线程”提交Http请求
    对搜索引擎友好的图片延迟加载技术
    iframe分栏拖拽伸缩例子
    我的web系统设计规范
    Java web文件服务器的简单实现
    自创简易CSS Tab 选项卡
  • 原文地址:https://www.cnblogs.com/rosizel/p/3859384.html
Copyright © 2011-2022 走看看