Laden...

In Windows Forms imperativ/sequentiell programmieren?

Erstellt von Wolf359 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.237 Views
W
Wolf359 Themenstarter:in
23 Beiträge seit 2010
vor 13 Jahren
In Windows Forms imperativ/sequentiell programmieren?

Ich finde in keinem Buch und auch im Web nichts dazu.

Kann ich festlegen, dass die Methoden die ich aufrufe streng nacheinander abgearbeitet werden?
Als Beispiel:
Ein Fenster öffnet sich, der an den Konstruktor übergebene Text wird für 2 sec angezeigt und das Fenster schließt sich. (ist nur ein Beispiel)

Wenn z.B. ich folgendes in den Konstruktor schreibe
> this.Show();
> textBox.Text = "Test";
> System.Threrading.Thread.Sleep(2000);
> this.Close();
dann wird die Pause vorher gemacht bevor der Text angezeigt wird. Nach der Pause kurz vor dem Schließen blitzt der Text noch auf.

Ich hätte das strenge hintereinander abarbeiten schon öfter benötigt, konnte es aber immer irgendwie umgehen.
Jetzt muss ich direkt mal nachfragen und meine Wissenslücke schließen.
Wie gesagt ich finde dazu nichts, weil ich nicht mal weiß nach welchen Schlüsselworten ich suchen soll.
Etwas Starthilfe würde mir schon nützen, danach finde ich mich dann schon zurecht.
Danke!
Wolfgang

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Wolf359,

nein, das entspricht nicht dem Programmiermodell von Windows Forms. Da musst du ereignisgesteuert programmieren. Wenn du was anders versuchst, stößt du immer wieder an Ecken und Kanten. Das ist nicht effektiv. Lerne besser ereignisgesteuertes Programmieren.

Im konkreten Fall nimm einen Timer, um zwei Sekunden zu warten.

Siehe auch [FAQ] Warum blockiert mein GUI?

herbivore

C
401 Beiträge seit 2007
vor 13 Jahren

Thread.Sleep sollte man generell vermeiden, da der Thread dann komplett brach liegt, wo er doch in der Zeit andere Aufgaben übernehmen könnte (z.B. das Neuzeichnen der GUI 😉 ). Also wie herbivore schon sagte, benutz am besten einen Timer.

W
Wolf359 Themenstarter:in
23 Beiträge seit 2010
vor 13 Jahren

Super, Danke, funktioniert! 😃