本文实例讲述了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#程序设计有所帮助。