Async und Await

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Async und Await

    Hallo
    Ich wieder :)
    Also bin nun schon recht gut vorran gekommen. Hier ein Problem.
    Hier rufe ich die Sub zippen auf. Das funktioniert alles super nur nachdem alles gezippt ist sollte es doch eigentlich beim Else- Zweig weitergehen ODER??
    Wenn ich allerdings während des zippens auf Abbruch klicke spring das Prog in den Else - Zweig

    Danke schon für Eure Hilfe

    VB.NET-Quellcode

    1. Private Async Sub bt_zippen_Click(sender As Object, e As EventArgs) Handles bt_zippen.Click
    2. If bt_zippen.Text = "Zippen" Then
    3. bt_zippen.Text = "Abbrechen"
    4. bt_zippen.ForeColor = Color.Red
    5. TargetFiles.Clear()
    6. lst_zips.Items.Clear()
    7. ckb_del.Enabled = False
    8. btn_suche.Enabled = False
    9. rb_comp1.Enabled = False
    10. rb_comp2.Enabled = False
    11. 'Threading.Thread.Sleep(10)
    12. ProgrammAbort = False
    13. Await Threading.Tasks.Task.Run(Sub() zippen())
    14. ProgrammAbort = True
    15. Else '<==========================Da kommt das Prog nicht hin.
    16. bt_zippen.Text = "Zippen"
    17. bt_zippen.Enabled = False
    18. ckb_del.Enabled = True
    19. btn_suche.Enabled = True
    20. abbruch = True
    21. End If
    22. End Sub
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Amelie schrieb:

    Wenn ich allerdings während des zippens auf Abbruch klicke spring das Prog in den Else - Zweig
    Da fehlt doch etwas mehr an Information.
    Poste mal den relevanten Code oder ggf. das komplette bereinigte Projekt (Erstellen => Projektmappe bereinigen) als ZIP.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Amelie schrieb:

    nur nachdem alles gezippt ist sollte es doch eigentlich beim Else- Zweig weitergehen ODER??
    Hä?
    Wieso sollte der Programm-Ablauf nach dem Zippen sich auf einmal im Else-Zweig wiederfinden?
    Fände ich komplett unlogisch.
    Das ist grad der Witz an Async, dass es danach genau da weiter geht, wo es durch Async "unterbrochen" wurde.
    @Amelie DAs kannst Du ja experimentell ermitteln, wenn Du auf Zeile 14 einen Haltepunkt setzt:
    Debuggen, Fehler finden und beseitigen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Das ist grad der Witz an Async, dass es danach genau da weiter geht, wo es durch Async "unterbrochen" wurde.


    Dann habe ich den Artikel auf der MS seite wohl falsch verstanden...


    RodFromGermany schrieb:

    DAs kannst Du ja experimentell ermitteln, wenn Du auf Zeile 14 einen Haltepunkt setzt:
    Werde ich mal machen ;)
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Amelie“ ()