
本文实例讲述了C#中WinForm跨线程访问控件的实现方法,分享给大家供大家参考。
具体实现方法如下:
1、跨线程访问控件委托和类的定义
复制代码 代码如下:using System;@H_404_12@using System.windows.Forms;
namespace ahwildlife.Utils@H_404_12@{@H_404_12@ /// <summary>@H_404_12@ /// 跨线程访问控件的委托@H_404_12@ /// </summary>@H_404_12@ public delegate voID InvokeDelegate();
/// <summary>@H_404_12@ /// 跨线程访问控件类@H_404_12@ /// </summary>@H_404_12@ public class InvokeUtil@H_404_12@ {@H_404_12@ /// <summary>@H_404_12@ /// 跨线程访问控件@H_404_12@ /// </summary>@H_404_12@ /// <param name="ctrl">Form对象</param>@H_404_12@ /// <param name="de">委托</param>@H_404_12@ public static voID Invoke(Control ctrl,Delegate de)@H_404_12@ {@H_404_12@ if (ctrl.IsHandleCreated)@H_404_12@ {@H_404_12@ ctrl.BeginInvoke(de);@H_404_12@ }@H_404_12@ }@H_404_12@ }@H_404_12@}
2、用法
在Form1.cs文件的线程方法中:
复制代码 代码如下:InvokeDelegate invokeDelegate = delegate()@H_404_12@{@H_404_12@ button4.Enabled = false;@H_404_12@ button5.Enabled = false;@H_404_12@ button6.Enabled = false;@H_404_12@ button7.Enabled = false;@H_404_12@ button8.Enabled = false;@H_404_12@};@H_404_12@InvokeUtil.Invoke(this,invokeDelegate);
希望本文所述对大家的C#程序设计有所帮助。
总结以上是内存溢出为你收集整理的C#之WinForm跨线程访问控件实例全部内容,希望文章能够帮你解决C#之WinForm跨线程访问控件实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)