一个线程与窗体控件的问题,请帮忙,谢谢
你好,我在一个窗体中有一个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