Ich habe ein Problem beim Versuch, Wert von Combobox in IF-Anweisung in Backgroundworker zu erhalten. Wenn ich versuche, diesen Code"Cross-Thread-Vorgang ist nicht gültig" Ausnahme beim Versuch, Wert von ComboBox in Backgroundworker zu erhalten
if (KondisiSaldo.SelectedItem == "Kurang dari...")
{
view.RowFilter = string.Format("[Saldo] < '{0}'", thresholdcas);
view2.RowFilter = string.Format("[Saldo] > '{0}'", thresholdcas);
this.Invoke(new MethodInvoker(delegate
{
ViewDataSaldoGV.DataSource = view;
SaldoUnscheduleGV.DataSource = view2;
}));
}
Der Fehler sagt
Cross-Thread-Betrieb nicht gültig auszuführen: Control 'KondisiSaldo' von ein anderen Thread als dem Thread auf erstellt wurde abgerufen.
Kann mir jemand helfen?
Ja, Sie müssen den Wert aus dem Formular innerhalb einer initiierten Eigenschaft speichern, und dann können Sie den Wert innerhalb des Hintergrundarbeiters aufrufen oder als Parameter übergeben. – Edward
Mögliches Duplikat von [Kreuzthread-Operation nicht gültig: Steuerelement, auf das von einem anderen Thread als dem Thread zugegriffen wird, auf dem es erstellt wurde] (http://stackoverflow.com/questions/142003/cross-thread-operation-not-valid-control von einem Thread-anders-als-The-accessed – Martheen