[VB.NET] Alternative zu Thread.Sleep / Task.Delay

Gast #7036031
Lesenswert?

Hallo,

kurz und sachlich:
 - Compact Framework da Windows Mobile Gerät

Beim klick eines Buttons sollen mehrere Befehle hintereinander 
ausgeführt werden, mit einer Pause von 200 Millisekunden.

Also im ButtonClick Event:
1
Erster Befehl
2
200 ms warten
3
zweiter Befehl
4
200 ms warten
5
etc.

Async / Task.Delay geht da noch nicht. Thread.Sleep blockiert die GUI 
(ist "normal", das weiß ich).

Welche Alternativen gibt es für diesen Fall?

MfG
Gast #7036271
Lesenswert?

zione schrieb:

> Welche Alternativen gibt es für diesen Fall?

Ein Windows.Forms.Timer und eine state machine in dessen Tick-Handler. 
Hat den Vorteil, dass GUI-Feedback durch die einzelnen "Kommandos" 
problemlos möglich ist. Ist aber ungünstig, wenn die Kommandos selber 
lange laufen, denn dann blocken sie für ihre Laufzeit den GUI-Thread. 
Wenn das der Fall sein sollte, dann wäre die nächste Variante zu 
bevorzugen:

Ein System.Threading.Timer und eine state machine in dessen 
Timer-Prozedur. GUI-Feedback muss dann aber per System.Form.Invoke oder 
System.Form.BeginInvoke geschehen.
Gast #7036450
Lesenswert?

c-hater schrieb:
> c-hater schrieb:
>
>> GUI-Feedback muss dann aber per System.Form.Invoke oder
>> System.Form.BeginInvoke geschehen.
>
> Muss natürlich richtig heißen: Windows.Form.Invoke bzw.
> Windows.Form.BeginInvoke.

Immer noch nicht richtig, aber jetzt:

Muss natürlich richtig heißen: Windows.Forms.Form.Invoke bzw.
Windows.Forms.Form.BeginInvoke.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren