Hallo @ Forengemeinde habe mich soeben registriert und auch ein Anliegen:
Ich programmiere mit VS 2008 und Compact Framework, weil die Anwendung auf einem ausgedienten Navi mit Windows CE laufen soll.
Ich möchte: Eine Sequenz von mehreren Zeichenfolgen per Serial Port an die "Gegenstelle" senden, bis diese einen bestimmten Wert zurück gibt.
Dies soll automatisch ablaufen, also der Nutzer klickt einen Button, der Port wir geöffnet und dann werden der Reihe nach die Zeichenfolgen rausgeschickt, bis die erwünschte Antwort kommt. Dann wird der Port geschlossen.
Problem: Wenn ich mit nacheinander die Befehle in einen Timer (oder auch direkt in den Button schreibe), werden diese zu schnell hintereinander gesendet, so dass die angeschlossene Gegenstelle sie nicht verarbeiten kann.
z.B.
etc.
Zwischen den Zeichenfolgen brauche ich eine Pause, ca 200 Millisekunden. In VS 2022 nutze ich ganz einfach Task.Delay (Async), doch das geht beim Compact Framework nicht.
Threading.Thread.Sleep friert die Oberfläche natürlich ein und das "warten" auf die gewünschte Antwort der Gegenstelle geht dann auch nicht mehr.
Was gibt es hier für Optionen? Da es insgesamt fast 20 Zeichenfolgen sind, die nacheinander gesendet werden sollen, wäre das mit einzelnen Timern etc. etwas umständlich.
Erwünscht ist also:
Hat jemand einen Tip, wie sich das so umsetzen lässt ohne Task.Delay und ohne einfrieren der UI?
Danke im Voraus!
Ich programmiere mit VS 2008 und Compact Framework, weil die Anwendung auf einem ausgedienten Navi mit Windows CE laufen soll.
Ich möchte: Eine Sequenz von mehreren Zeichenfolgen per Serial Port an die "Gegenstelle" senden, bis diese einen bestimmten Wert zurück gibt.
Dies soll automatisch ablaufen, also der Nutzer klickt einen Button, der Port wir geöffnet und dann werden der Reihe nach die Zeichenfolgen rausgeschickt, bis die erwünschte Antwort kommt. Dann wird der Port geschlossen.
Problem: Wenn ich mit nacheinander die Befehle in einen Timer (oder auch direkt in den Button schreibe), werden diese zu schnell hintereinander gesendet, so dass die angeschlossene Gegenstelle sie nicht verarbeiten kann.
z.B.
etc.
Zwischen den Zeichenfolgen brauche ich eine Pause, ca 200 Millisekunden. In VS 2022 nutze ich ganz einfach Task.Delay (Async), doch das geht beim Compact Framework nicht.
Threading.Thread.Sleep friert die Oberfläche natürlich ein und das "warten" auf die gewünschte Antwort der Gegenstelle geht dann auch nicht mehr.
Was gibt es hier für Optionen? Da es insgesamt fast 20 Zeichenfolgen sind, die nacheinander gesendet werden sollen, wäre das mit einzelnen Timern etc. etwas umständlich.
Erwünscht ist also:
Hat jemand einen Tip, wie sich das so umsetzen lässt ohne Task.Delay und ohne einfrieren der UI?
Danke im Voraus!