C#“多线程线程间操作无效: 从不是创建控件的线程访问它。”,跨线程修改控件属性解决方案

简介:

解决方案就是使用代理,在代理中调用主线程的方法来控制控件

复制代码
        /// <summary>
        /// 声明代理
        /// </summary>
        delegate void SetTextCallBack(string text);

        /// <summary>
        /// 代理函数,在线程中使用
        /// </summary>
        private void Tip(string text)
        {
            //判断主线程的控件是否需要使用代理来访问
            if (this.tbTip.InvokeRequired)
            {
                //创建一个代理
                SetTextCallBack stcb = new SetTextCallBack(Tip);
                //执行代理
                this.Invoke(stcb, new object[] { text });
            }
            else
            {
                //调用主线程的方法,并传递参数,这样就可以在_tip方法里面调用主线程的控件并修改属性了
                _tip(text);
            }
        }
复制代码



本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/7851511.html,如需转载请自行联系原作者

相关文章
|
1月前
|
安全 Java 调度
线程的四种创建方式
【10月更文挑战第22天】在多线程编程中,还需要注意线程安全、死锁等问题,以确保程序的正确性和稳定性。通过合理地运用线程创建方式和相关技术,我们可以充分发挥多线程的优势,提高程序的性能和并发处理能力。
|
6月前
|
Linux API
Linux线程总结---线程的创建、退出、取消、回收、分离属性
Linux线程总结---线程的创建、退出、取消、回收、分离属性
|
7月前
|
Java 调度
【Java多线程】线程中几个常见的属性以及状态
【Java多线程】线程中几个常见的属性以及状态
54 0
|
存储 消息中间件 Linux
《Linux操作系统编程》 第十章 线程与线程控制: 线程的创建、终止和取消,detach以及线程属性
《Linux操作系统编程》 第十章 线程与线程控制: 线程的创建、终止和取消,detach以及线程属性
80 0
|
算法 安全 Java
探索多线程编程:线程的本质、状态和属性
探索多线程编程:线程的本质、状态和属性
|
安全 Java 调度
【Java并发编程 五】线程生命周期及状态切换
【Java并发编程 五】线程生命周期及状态切换
100 0
|
C++
线程的2种创建方式
当一个类继承了Thread类,该类就可以当作线程使用。 run方法其实是一个普通方法,是Runnable接口的一个方法。 Thread类也是进行了重写。 真正实现多线程的start方法中的start0方法。 这是一个本地native方法,由c/c++实现。
88 0
|
NoSQL Java 调度
线程的三种创建方式你get了吗?
线程的三种创建方式你get了吗?
144 0
线程的三种创建方式你get了吗?
|
存储 Java 程序员
在线程异步的场合下,如何将线程信息传递到调用处(1)
在线程异步的场合下,如何将线程信息传递到调用处
132 0
在线程异步的场合下,如何将线程信息传递到调用处(2)
在线程异步的场合下,如何将线程信息传递到调用处
158 0