我嘗試在畫布上每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