backgroundworker beenden

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von _PASCAL_.

    backgroundworker beenden

    Hallo,

    ich hab ein problem mit meinem backgroundworker ... und zwar habe ich einen Abbrechen Button gebastelt welcher "calc.CancelAsync()" ausführt.

    In meinem Backgroundworker ist es aber leider so, dass mehrere Funktionen und schleifen verschachtelt sind. Ich habe jetzt zwar in jeder Schleife

    VB.NET-Quellcode

    1. If calc.CancellationPending Then args.Cancel = True : args.Result = "abbruch" : Return Nothing


    eingefügt, doch leider dauert es trotzdem bis der Bgw dann endlich beendet ist.

    Gibt es da eine andere Möglichkeit welche den Bgw sofort "zerstört" ?

    VB.NET-Quellcode

    1. calc.Dispose()


    bringt leider auch nicht den gewünschten erfolg

    Gruß
    hmm das weis ich dass man einen bw so beenden kann und das macht mein code ja auch schon ...

    das problem ist, dass ich einige schleifen in meiner DoWork habe und es deshalb vorkommt, dass der bw erst 1-2 sec nach drücken des Abbrechen-Buttons beendet wird.

    Das sieht etwas unsauber aus ...

    ich habe schon in jeder vorkommenden schleife

    VB.NET-Quellcode

    1. If calc.CancellationPending Then args.Cancel = True : args.Result = "abbruch" : Return Nothing


    eingefügt. Trotzdem dauert es einige zeit. Ich könnte mir vorstellen dass es daran liegt dass er dann erst aus der innersten Function, dann aus der nächsten und zum schluss halt erst aus der DoWork springt.

    Deshalb hab ich gefragt ob es sowas wie ein "kill" befehlt gibt welcher den bw sofort ohne zu überlegen beendet.

    Gruß