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);
        }
    }

  • 相关阅读:
    qt截取屏幕
    使用XmlTextReader 读取XML
    QQ2010 SP2 美化 皮肤 修改 透明 托盘 图标 RES.RDB 解包 打包 去广告 显IP
    发一个linux串口监视工具
    linux打包压缩命令汇总
    Qt实现遍历文件夹和文件目录(递归)
    linux忘记root密码的恢复方法
    centos x8664位版本 想安装qq for linux
    删除所有的.svn文件夹
    qtsdk1.2.1 静态编译
  • 原文地址:https://www.cnblogs.com/bigmouthz/p/946790.html
Copyright © 2011-2022 走看看