zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    OCP-1Z0-053-V12.02-15题
    Boost.Asio性能测试
    使用asio搭建服务器
    boost::asio::ip::tcp::socket is connected?(如何知道socket的链接是链接或断开?)
    boost::async_read_some连续接收数据
    基于boost asio实现的支持ssl的通用socket框架
    Boost.Asio的使用技巧
    Matlab基本函数-expm函数
    Matlab基本函数-exp函数
    OCP-1Z0-053-V12.02-337题
  • 原文地址:https://www.cnblogs.com/rosizel/p/3861620.html
Copyright © 2011-2022 走看看