Abbrechen eines Background Workers

22/07/2009 - 16:18 von Andre Grumbach | Report spam
Hallo zusammen,
ich bin gerade an einer Anwendung mit einem BGW.

Diese Anwendung soll via BGW, Daten auslesen und in der Form anzeigen.
Das Funktioniert auch soweit, jedoch habe ich ein Problem, beim Abbrechen
des BGW.

Die Funktion zum Auslesen der Daten kommt nicht von mir selbst, sondern
wurde uns von einem Kunden zur Verfügung gestellt und wir haben somit keinen
Zugriff darauf.

Somit kann ich in dieser Funktion auch nicht überprüfen ob das
CancellationPending Flag auf True steht und abbrechen.

Wenn ich nun über CancelAsync() den BGW abbreche, làuft der Methodenaufruf
somit immer weiter, bis die Methode zuende ist. Gibt es hier eine
Möglichkeit, den BGW abzubrechen (z.B. Thread.Abort()), wobei ich den Thread
des BGWs auch erst herankommen müsste (und das aus der Windows Form).

Hat jemand eine Idee?

Danke,
Andre
 

Lesen sie die antworten

#1 Frank Dzaebel
22/07/2009 - 22:56 | Warnen spam
Hallo Andre,

Gibt es hier eine Möglichkeit, den BGW abzubrechen (z.B. Thread.Abort()),
wobei ich den Thread des BGWs auch erst herankommen müsste (und das
aus der Windows Form).



Wenn Du zusàtzlich ein DoWork subscribe'st, kannst Du
dort auch über "Thread.CurrentThread" diesen global
merken. Es ist aber trotzdem ungesichert, dass dieser
auch mittels Abort den Thread abbricht.


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

Ähnliche fragen