Forums Neueste Beiträge
 

Thread sauber abbrechen

17/02/2009 - 12:20 von Alexander Rüther | Report spam
Hallo NG,

Ich habe folgendes programmiert:

Per Thread lese ich die Verzeichnissstrucktur eines Laufwerkes aus und
zeige sie in einem Treeview an.
Über Invoke werden die TreeNodes erzeugt und gefüllt und gleich an der
passenden Stelle angezeigt.

Problem: Wie breche ich den Thread sauber ab, wenn ich ein anderes
Laufwerk wàhle?

Ich habe folgendes versucht:

searchRunning = Suche fàuft gerade
stopSearch = Suche soll abgebrochen werden

Code zum abbrechen:

if(searchRunnung) stopSearch=true;
while(searchRunning) Thread.Sleep(10);

Das Problem ist nur, das er jetzt den FrontendThread anhàlt und natülich
auch die Methode die die TreeNodes anlegt, ich also nicht mehr sauber aus
meiner Rekursion rauslaufen kann, wenn er gerade ein TreeNode anlegt.

Ich hatte irgendwo einmal gehört, das man die Abarbeitung der Invokes
anstoßen kann.
Gibt es sowas? Das würde mein Problem doch lösen, oder?

So etwa:

if(searchRunnung) stopSearch=true;
while(searchRunning) {
InvokesBeenden(); //oder wie auch immer...
Thread.Sleep(10);
}

A.Rüther
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
17/02/2009 - 13:26 | Warnen spam
"Alexander Rüther" schrieb:
Per Thread lese ich die Verzeichnissstrucktur eines Laufwerkes aus und
zeige sie in einem Treeview an.
Über Invoke werden die TreeNodes erzeugt und gefüllt und gleich an der
passenden Stelle angezeigt.

Problem: Wie breche ich den Thread sauber ab, wenn ich ein anderes
Laufwerk wàhle?



Setze eine Boolesche Variable, die Du innerhalb des Arbeitsthreads
regelmàßig überprüfst (etwa nach Hinzufügen jedes Knotens oder von n
Knoten).

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen