zoukankan      html  css  js  c++  java
  • Common ThreadView

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    using System.Drawing;
    using System.Windows.Forms;

    namespace Common
    {

        public delegate void _Bgz_OnUpdateUI(object sender, MessageEvents e);

        public class MessageEvents : EventArgs
        {
            public string Msg;
            public string Control;
            public MessageEvents(string msg, string control)
            {
                Msg = msg;
                Control = control;
            }
        }

        public class ThreadView
        {
            #region 跨线程窗体控件操作
            //private void UpdateUI(object sender, MessageEvents e)
            //{
            //    lock (this)
            //    {
            //        switch (e.Control)
            //        {
            //            case "rtbReceiveMessage":
            //                this.rtbReceiveMessage.AppendText(e.Msg + "\r\n");
            //                this.rtbReceiveMessage.ScrollToCaret();
            //                break;
            //            case "rtbReceiveMessageApp":
            //                this.rtbReceiveMessage.AppendText(e.Msg);
            //                this.rtbReceiveMessage.ScrollToCaret();
            //                break;
            //            case "statusBarPanel1":
            //            default:
            //                this.statusBarPanel1.Text = e.Msg;
            //                break;
            //        }
            //    }
            //}
            #endregion

            public _Bgz_OnUpdateUI OnUpdateUIEventDelegate;
            private void OnUpdateUIEvent(object sender, MessageEvents e)
            {
                if (OnUpdateUIEventDelegate != null) OnUpdateUIEventDelegate(sender, e);
            }
            private Form _form;
            private int _threadSleep = 100;

            public ThreadView(Form form)
            {
                this._form = form;
            }

            public ThreadView(Form form, int threadsleep)
            {
                this._form = form;
                this._threadSleep = threadsleep;
            }

            public void ShowState(string msg, string control)
            {
                try
                {
                    MessageEvents e = new MessageEvents(msg, control);
                    Thread ss = new Thread(new ParameterizedThreadStart(InvokeState));
                    ss.Start(e);
                    Thread.Sleep(this._threadSleep);
                }
                catch { }
            }

            private void InvokeState(object obj)
            {
                try
                {
                    System.EventArgs e = (MessageEvents)obj;
                    object[] pList = { this, e };
                    this._form.BeginInvoke(new MessageEventsHandler(OnUpdateUIEvent), pList);
                }
                catch (Exception ex)
                {
                }
            }

            private delegate void MessageEventsHandler(object sender, MessageEvents e);
        }
    }

  • 相关阅读:
    jquery内容过滤器
    jquery的each()
    jquery表单过滤器
    jquery评分星星
    UVa 1595 Symmetry (set && math)
    UVa 1592 Database (map)
    Codeforces 886E Maximum Element 组合数学 + dp
    Codeforces 725E Too Much Money (看题解)
    可持久化字典树
    Codeforces 660F Bear and Bowling 4 斜率优化 (看题解)
  • 原文地址:https://www.cnblogs.com/bigmouthz/p/946790.html
Copyright © 2011-2022 走看看