欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-16 16:46:40
本文实例讲述了c#中winform跨线程访问控件的实现方法,分享给大家供大家参考。 具体实现方法如下: 1、跨线程访问控件委托和类的定义 复制代码 代码如下:usin...

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

上一篇:

下一篇: