ich nicht erklären kann meine eigenen Worte mit, also hier die Situation:Cross-Thread-Fehler
myBindingSource.Add(new myElement());
SetDataSource(myBindingSource);
myBindingSource.Add(new myElement());
ich immer eine Ausnahme fangen (a verkanten Ausnahme) auf dem zweiten Aufruf von Add. Hier ist die SetDataSource void:
delegate void SetDataSourceCallback(BindingSource db);
private void SetDataSource(BindingSource db)
{
if (myDataGridView.InvokeRequired)
{
SetDataSourceCallback d = new SetDataSourceCallback(SetDataSource);
myDataGridView.Invoke(d, new object[] { db });
}
else
{
myDataGridView.DataSource = db;
}
}
Ich kann nicht verstehen, warum das passiert so weiter!
Es ist nicht zulässig, eine Datenquelle von einem Worker-Thread zu aktualisieren. Sie benötigen ebenfalls eine ClearDataSource() -Methode, damit Sie die Eigenschaft myDataGridView.DataSource auf null zurücksetzen können. –
Verwenden Sie diese Antwort: Rufen Sie den Dispatcher des WPF/UI-Hauptthreads auf: http://stackoverflow.com/questions/11625208/accessing-ui-main-thread-safely-in-wpf –