我在线程中这样更改UI可以吗?会不会出现问题
如果不可以请问应该如何做?
private void button1_Click(object sender, EventArgs e)
{
Thread RunThread = new Thread(new ThreadStart(RunPro));
RunThread.Start();
}
public void RunPro()//static
{
changecolor(Color.Red);
Thread.Sleep(1000);//延时
changecolor(Color.Blue);
return;
}
void changecolor(Color cl)
{
button2.BackColor = cl;
}
------解决思路----------------------
void changecolor(Color cl)
{
this.Invoke(new Action(()=>{
button2.BackColor = cl;
}));
}
------解决思路----------------------
使用Form的InvokeRequired来判断,并使用Form的Invoke方法调用新建的委托实例
------解决思路----------------------
把Ref去掉,直接转对象就可以了。别乱看书,误人