• 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);
                }
    
            }
        }
    }
  • 相关阅读:
    自己实现一个hash类的vue-router插件/vue-router底层原理实现
    XSS攻击和防护
    浏览器缓存机制介绍之http缓存-强缓存-协商缓存
    chrome控制台查看网络性能指标-TTFB_Content Download_window.performance
    vscode创建vue快捷键
    移动端布局适配方案
    node生成token
    vue组件的讨论&容易忽略的知识点
    函数防抖
    webpack-搭建项目的代码
  • 原文地址:https://www.cnblogs.com/rosizel/p/3859384.html
Copyright © 2020-2023  润新知