Programm ausschalten, während die Button1-Sub noch läuft

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

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Programm ausschalten, während die Button1-Sub noch läuft

    Hallo zusammen,

    wenn ich das Programm oben rechts mit dem X schließe, kann es passieren, dass ich das Programm im Task-Manager noch laufend finde. Ich denke, es liegt daran, dass die

    Quellcode

    1. Sub Button1_Click
    noch nicht zurückgekehrt ist. Wie kann ich das Programm trotzdem beenden?

    ######
    Edit: Me.Close() bringt hier nicht den gewünschten Effekt...

    Viele Grüße,
    B.
    @Bartosz Da läuft noch iein Thread, den musst Du zunächst beenden.
    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!
    @RodFromGermany ok, könntest du mir bitte sagen, wie der Befehl lautet?

    ########
    Edit: Sonst alles in ne Do While Schleife und dann einen zweiten Button , der Me.Close() enthält und vorher einen gloablen Boolean auf false setzt? Dann läuft Button1_Click immer wieder, wenn doch kein Befehlen zum Beenden kommt
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bartosz“ ()

    @Bartosz Das ist allerdings die Holzhammer-Methode:

    VB.NET-Quellcode

    1. DEIN_THREAD.Kill()
    Besser ist es, wenn Du ein Flag setzt, so dass sich der Thread von allein beendet.
    Gugst Du docs.microsoft.com/de-de/dotne…eading/destroying-threads
    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!
    Ok, bevor du geantwortet hast, habe ich etwas gefunden (siehe Post #3). Ich werde beides versuchen.
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Was geht denn in Button1_Click so derbes ab, dass alles blockiert wird? Das wär doch RCA.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Bartosz schrieb:

    Ich werde beides versuchen.
    Das Flag ist in jedem Falle besser.
    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!
    @VaporiZed Erstmal Danke für den Link. Das werde ich mir ansehen! Sauber!
    In der Prozedur werden eigentlich nur Sortieraufgaben erledigt (Dateien sortiert). Bilder, Office-Dateien, teilweise à 3-5 MB.

    Ich weiß nicht, ob wir uns richtig verstehen -> Ich bin im Release-Mode, klicke auf schließen, die Form verschwindet und mit einer 70:30-Chance ist das Programm noch da.

    ##########
    EDIT: @RodFromGermany ich habe es nun mit

    Quellcode

    1. Thread.Abort
    gelöst. Danke Euch.
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

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

    Bartosz schrieb:

    und mit einer 70:30-Chance ist das Programm noch da.
    Wie sieht denn Deine Thread-Prozedur aus?
    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!