Ich versuche, etwas auf der Leinwand alle 1 Sekunde zu zeichnen. Dann erstelle ich einen Thread eine Methode zum Zeichnen nach dem Schlaf 1 Sekunde aufrufen. Das Problem besteht darin, das zu zeichnende Canvas-Objekt aufzurufen. Das Programm sagt mir FehlermeldungWPF: Ich habe ein Problem beim Zeichnen etwas auf der Leinwand mit Thread
Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, weil ein anderer Thread es besitzt.
-Code
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);
}
}
Wie Leinwand in Thread zugreifen zu ziehen?
Es gibt wayyyyy bessere Möglichkeiten, dies mit WPF als Threading zu tun; Wenn Sie jedoch müssen, verwenden Sie den Dispatcher auf dem Canvas – Pierreten
http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.invoke.aspx – Pierreten
@Pierreten: Ich denke, Sie sollten dies als post eine Antwort, damit sie angenommen und abgestimmt werden kann. – Jens