C#之WinForm跨线程访问控件实例

本文实例讲述了C#中WinForm跨线程访问控件的实现方法,分享给大家供大家参考。

具体实现方法如下:

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

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

希望本文所述对大家的C#程序设计有所帮助。