Hallo Zusammen,
ich habe eine Frage zu Threading und Zeichnen auf WPF.
also ich habe eine von System.Windows.Controls.Canvas abgeleitete Klasse. In dieser Klasse befindet sich folgende
Die Draw() Methode wird von einem anderen Thread alle paar Millisekunden aufgerufen.
Dass soll veranlassen dass das Canvas komplett neu gezeichnet wird.
Das funktioniert alles eigendlich ganz gut und flüssig.
Das komische ist dass Jetzt auf einmal als das Projekt immer größer wurde der aufruf der Methode UpdateLayout(); eine InvalidOperationException auslößt:
"An unhandled exception of type 'System.InvalidOperationException' occurred in WindowsBase.dll
Additional information: Es kann kein 'DependencyObject' verwendet werden, das zu einem anderen Thread als das übergeordnete Freezable-Objekt gehört."
An was kann das liegen?
ich habe eine Frage zu Threading und Zeichnen auf WPF.
also ich habe eine von System.Windows.Controls.Canvas abgeleitete Klasse. In dieser Klasse befindet sich folgende
Code:
protected override void OnRender(System.Windows.Media.DrawingContext dc)
{
base.OnRender(dc);
draw(dc);
}
//Neuzeichnen wird aufgerufen bzw OnRender
private void ReDraw()
{
InvalidateVisual();
UpdateLayout();
}
private void Draw()
{
Dispatcher.Invoke((Action)(() =>
{
ReDraw();
}));
}
Die Draw() Methode wird von einem anderen Thread alle paar Millisekunden aufgerufen.
Dass soll veranlassen dass das Canvas komplett neu gezeichnet wird.
Das funktioniert alles eigendlich ganz gut und flüssig.
Das komische ist dass Jetzt auf einmal als das Projekt immer größer wurde der aufruf der Methode UpdateLayout(); eine InvalidOperationException auslößt:
"An unhandled exception of type 'System.InvalidOperationException' occurred in WindowsBase.dll
Additional information: Es kann kein 'DependencyObject' verwendet werden, das zu einem anderen Thread als das übergeordnete Freezable-Objekt gehört."
An was kann das liegen?