florian86
Goto Top

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.

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));

Content-Key: 624271

Url: https://administrator.de/contentid/624271

Ausgedruckt am: 29.03.2024 um 13:03 Uhr

Mitglied: emeriks
Lösung emeriks 20.11.2020 um 13:50:46 Uhr
Goto Top
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. face-wink

E.