当前位置:编程学习 > C#/ASP.NET >>

一个线程与窗体控件的问题,请帮忙,谢谢

你好,我在一个窗体中有一个progressbar用来显示进度,按钮按下后就自动创建新线程计算另一个类中的方法,通过事件来返回计算进度并在窗体中的委托方法中改变progressbar的value。可是总是出现如下错误:线程间操作无效: 从不是创建控件“progress1”的线程访问它。请问怎么解决? --------------------编程问答-------------------- 线程间操作无效?

难道你是新建了两条不同的线程进行互相操作的吗?

只要新建一个线程就行了 --------------------编程问答-------------------- 跨线程访问问题,因为控件是主线程创建的所以子线程不能访问,解决方案如下:
创建一个代理

        delegate void Change(int value);
        private void ChangeValue(int value)
        {
            this.progress1.value= value;
        }
在子线程调用时如下:

        this.textBox1.Invoke(new Change(ChangeValue), 99);
--------------------编程问答-------------------- 具体查看MSDN --------------------编程问答-------------------- 在这里已经回答了,有具体代码
http://community.csdn.net/Expert/TopicView.asp?id=5425886
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,