各位大虾好:线程间操作无效: 从不是创建控件“”的线程访问它 怎么办啊???
下面是我的相关部分代码:Label lblA,lblB;
void moveAB()
{
Label swap,destPie;
destPie = lblB;
swap lblA; Thread moveThread = new Thread(delegate() {
movePie(swap, destPie,'A','B'); }); moveThread.Start();
moveThread.Join();
}
//------------------------------------------------------------------
private void movePie(Label move, Label destPie, char start, char dest)
{
while(true)
{
move.Top += 5;
move.Left += 5;
Thread.Sleep(100);
}
}
下面是我的相关部分代码:Label lblA,lblB;
void moveAB()
{
Label swap,destPie;
destPie = lblB;
swap lblA; Thread moveThread = new Thread(delegate() {
movePie(swap, destPie,'A','B'); }); moveThread.Start();
moveThread.Join();
}
//------------------------------------------------------------------
private void movePie(Label move, Label destPie, char start, char dest)
{
while(true)
{
move.Top += 5;
move.Left += 5;
Thread.Sleep(100);
}
}
{
while(true)
{
setTop(move,5);
Thread.Sleep(100);
}
}delegate void setDelegate(Label move ,int pra);
void setTop(Label move,int pra)
{
if ( this.InvokeRequired )
this.Invoke( new setDelegate(setTop) , new Object[]{ move , par } );
else
move.Top += pra;
}
this.invoke(new eventhanlder(delegate{
//写在这里
}));
我用你的代码试了一下,可以,
但是在下面这一句中
this.Invoke( new setDelegate(setTop) , new Object[]{ move , par } );
出现了这个异常:
System.ObjectDisposedException
无法访问以释放的对象。怎么解决啊???
谢谢