Hi,
Ich habe ein Fenster mit einem Button und einem Label. Beim klick auf den Button wird folgendes ausgeführt:
Das Problem ist, dass sich hierbei die GUI solange aufhängt, bis die for-Schleife zu Ende gelaufen ist.
Jetzt bin ich seit einiger Zeit schon am googeln und habe gelesen, dass man solche längeren Berechnungen nicht im GUI-Thread (wie hier) durchführen sollte, sondern besser in einem seperaten Thread und dann von dort aus die GUI updatet.
Ich habe zwar sehr viele Beispiele gefunden, aber nur unvollständige Code-Schnipsel wo einiges nicht klar ist. Auf manchen Seiten dann mit Lambda, dann ohne, dann mal 100 Zeilen lang, dann mal nur 1 Zeile lang....
Das einzige was geklappt hat, man aber nicht nutzen sollte, ist Application.Run().
Ganz einfach gefragt:
Was muss ich hier im Programm ändern, damit es funktioniert?
Ich habe ein Fenster mit einem Button und einem Label. Beim klick auf den Button wird folgendes ausgeführt:
Code:
private void button1_Click(object sender, EventArgs e) {
for (int i = 0; i < 100000; i++) {
label1.Text = "" + i;
}
}
Das Problem ist, dass sich hierbei die GUI solange aufhängt, bis die for-Schleife zu Ende gelaufen ist.
Jetzt bin ich seit einiger Zeit schon am googeln und habe gelesen, dass man solche längeren Berechnungen nicht im GUI-Thread (wie hier) durchführen sollte, sondern besser in einem seperaten Thread und dann von dort aus die GUI updatet.
Ich habe zwar sehr viele Beispiele gefunden, aber nur unvollständige Code-Schnipsel wo einiges nicht klar ist. Auf manchen Seiten dann mit Lambda, dann ohne, dann mal 100 Zeilen lang, dann mal nur 1 Zeile lang....
Das einzige was geklappt hat, man aber nicht nutzen sollte, ist Application.Run().
Ganz einfach gefragt:
Was muss ich hier im Programm ändern, damit es funktioniert?