Backgroundworker DoWork abbrechen

18/03/2009 - 10:01 von Simon Kurz | Report spam
Hallo,
ich rufe in meinem Backgrundworker eine Methode in einer externen dll auf,
die lànger làuft und ab und an hàngen bleibt. Kann ich den
Backgroundworker.DoWork abbrechen? Mit CancelAsync geht nicht, da in dem
DoWork ja keine Schleife habe.
Oder gibt es für so etwas eine andere Lösung?

mfG
Simon
 

Lesen sie die antworten

#1 Frank Dzaebel
22/03/2009 - 19:35 | Warnen spam
Hallo Simon,

ich rufe in meinem Backgrundworker eine Methode in einer externen dll
auf, die lànger làuft und ab und an hàngen bleibt. Kann ich den
Backgroundworker.DoWork abbrechen? Mit CancelAsync geht nicht,
da in dem DoWork ja keine Schleife habe.
Oder gibt es für so etwas eine andere Lösung?



Also CancelAsync ist schon eine empfehlenswerte
Methode für das Abbrechen des Worker-Handler-Codes.
Der Worker-Code sollte halt regelmàßig prüfen, ob die
CancellationPending-Eigenschaft auf true festgelegt wurde:

[BackgroundWorker.CancelAsync-Methode (System.ComponentModel)]
http://msdn.microsoft.com/de-de/lib...async.aspx

[BackgroundWorker.CancellationPending-Eigenschaft (System.ComponentModel)]
http://msdn.microsoft.com/de-de/lib...nding.aspx

[Gewusst wie: Verwenden eines BackgroundWorker]
http://msdn.microsoft.com/de-de/lib...21403.aspx

Kannst Du das nicht in Deinen DoWork-Handler einbauen?
Beachte auch, dass das RunWorkerCompleted Ereignis
noch nach einem Abbruch ausgeführt werden muss.

Der BackgroundWorker "unterstützt" das Abbrechen nur
auf die genannte Art und Weise.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen