首页 > 代码库 > C# WinFrom 跨线程访问控件

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, Delegate 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

 

C# WinFrom 跨线程访问控件