C#之WinForm跨线程访问控件实例
程序员文章站
2023-12-16 16:46:40
本文实例讲述了c#中winform跨线程访问控件的实现方法,分享给大家供大家参考。
具体实现方法如下:
1、跨线程访问控件委托和类的定义
复制代码 代码如下:usin...
本文实例讲述了c#中winform跨线程访问控件的实现方法,分享给大家供大家参考。
具体实现方法如下:
1、跨线程访问控件委托和类的定义
复制代码 代码如下:
using system;
using system.windows.forms;
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);
{
button4.enabled = false;
button5.enabled = false;
button6.enabled = false;
button7.enabled = false;
button8.enabled = false;
};
invokeutil.invoke(this, invokedelegate);
希望本文所述对大家的c#程序设计有所帮助。