C# · 12月 19, 2021

C# WinFrom 跨线程访问控件

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

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

2、如何使用

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

InvokeDelegate invokeDelegate = delegate() { button4.Enabled = false; button5.Enabled = ; button6.Enabled = ; button7.Enabled = ; button8.Enabled = ; }; InvokeUtil.Invoke(this,invokeDelegate);View Code