在多线程中访问控件有两种方式
方式1: 取消对跨线程操作的检查 在 from 的构造 函数中增加
system.window.forms.control.CheckForIllegalCrossThreadCalls=false;
方式2 : 采用委托的形式作为代理通知主线程控件,允许访问.
delegate void showData(string para);
visistControl(string para)
{
if (this.textbox1.invokeRequered) // 如果是子线程访问
{
showData show= new showData(testthread)
invoke( show,new object[]{ para} );
}else
{
this.textbox1.text=para;
}
}
void testthread(string para)
{
}
时间: 2024-10-30 04:42:06