Threadübergreifender Fehler DGV
Hallo Zusammen,
ich fülle aus einem Backgroundworker ein DGV. Dies funktioniert mit dem 2. Codeschnipsel auch aber mit dem ersten nicht.
Eigentlich machen doch beide dasselbe mit dem action delegaten oder? Beim ersten kommt eben immer das die Methode
aus einem anderen Thread nicht aufgerufen werden kann.
was macht der folgende Code anders damit das DGV gefüllt wird....
ich fülle aus einem Backgroundworker ein DGV. Dies funktioniert mit dem 2. Codeschnipsel auch aber mit dem ersten nicht.
Eigentlich machen doch beide dasselbe mit dem action delegaten oder? Beim ersten kommt eben immer das die Methode
aus einem anderen Thread nicht aufgerufen werden kann.
Action<DataTable> action = daten_schreiben;
action.Invoke(data);
private void daten_schreiben(DataTable data)
{
dataGridView2.DataSource = data;
}
was macht der folgende Code anders damit das DGV gefüllt wird....
dataGridView1.Invoke((Action)(() => dataGridView2.DataSource = data));
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 624271
Url: https://administrator.de/contentid/624271
Ausgedruckt am: 19.11.2024 um 17:11 Uhr
1 Kommentar
Hi,
einfach ausgedrückt:
Im ersten Beispiel bezieht sich das Invoke auf die Action. Also: "Action mache daten_schreiben mit data" und Action greift dann auf das DGV zu.
Im zweiten Bsp. bezieht sich das Invoke direkt auf das DGV: Also: "DGV mache du selbst mit data".
In wie fern das dann "sicherer" ist, habe ich auch noch nicht ganz verstanden, aber halt gefressen.
E.
einfach ausgedrückt:
Im ersten Beispiel bezieht sich das Invoke auf die Action. Also: "Action mache daten_schreiben mit data" und Action greift dann auf das DGV zu.
Im zweiten Bsp. bezieht sich das Invoke direkt auf das DGV: Also: "DGV mache du selbst mit data".
In wie fern das dann "sicherer" ist, habe ich auch noch nicht ganz verstanden, aber halt gefressen.
E.