zoukankan      html  css  js  c++  java
  • C# WinFrom 跨线程访问控件

    1、跨线程访问控件委托和类的定义

    using System;
    using System.Windows.Forms;
    
    namespace ahwildlife.Utils
    {
        /// <summary>
        /// 跨线程访问控件的委托
        /// </summary>
        public delegate void InvokeDelegate();
    
        /// <summary>
        /// 跨线程访问控件类
        /// </summary>
        public class InvokeUtil
        {
            /// <summary>
            /// 跨线程访问控件
            /// </summary>
            /// <param name="ctrl">Form对象</param>
            /// <param name="de">委托</param>
            public static void Invoke(Control ctrl, InvokeDelegate de)
            {
                if (ctrl.IsHandleCreated)
                {
                    ctrl.BeginInvoke(de);
                }
            }
        }
    }
    View Code

    2、如何使用

    在Form1.cs文件的线程方法中:

        InvokeDelegate invokeDelegate = delegate()
        {
            button4.Enabled = false;
            button5.Enabled = false;
            button6.Enabled = false;
            button7.Enabled = false;
            button8.Enabled = false;
        };
        InvokeUtil.Invoke(this, invokeDelegate);
    View Code
  • 相关阅读:
    Java 代理模式
    ReentrantLock 详解
    Java线程池详解
    ConcurrentHashMap 解读
    CountDownLatch/CyclicBarrie用法记录
    微信接入笔记记录
    iOS设计模式
    iOS设计模式
    iOS设计模式
    iOS设计模式
  • 原文地址:https://www.cnblogs.com/s0611163/p/4022106.html
Copyright © 2011-2022 走看看