我尝试在画布上每1秒绘制一些东西。然后,创建一个线程调用睡眠1秒后绘制的方法。问题在于调用Canvas对象进行绘制。该程序告诉我错误消息WPF:我在使用线程绘制画布上的东西时出现问题
调用线程不能访问此对象,因为不同的线程拥有它。
代码
private void drawTimeTick() {
...
Thread iThread = new Thread(new ThreadStart(tickThread));
iThread.Start();
}
private void tickThread(){
try
{
Thread.Sleep(1000);
...
Canvas.SetLeft(tick, 700);
Canvas.SetTop(tick, 30);
}catch(Exception ex){
MessageBox.Show("Exception tickThread : "+ex.Message);
}
}
如何访问画布的主题画?
有wayyyyy与WPF做比较线程的更好的方法;如果你一定要使用画布上的Dispatcher – Pierreten 2010-11-19 08:49:33
http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.invoke.aspx – Pierreten 2010-11-19 08:51:58
@Pierreten:我想你应该把它作为一个答案,所以它可以被接受和投票。 – Jens 2010-11-19 08:56:09