Moins !
Ich habe hier einen Codeschnipsel, der über
WNetEnumResource Freigaben im Netzwerk ausfindig macht. Das ganze läuft über einen Thread. Nun ist es so, das sich die entsprechende Funktion um WNetEnumResource immer wieder selber aufruft, bis sie alle Recourcen gefunden hat.
Leider kann ich dann aber nicht den Thread abbrechen. Hier mal ebend zwei Codeschnipsel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TNetEnumThread.Execute; begin FreeOnTerminate := true; if terminated then exit; TreeNode:=nil; LoadNetNode(nil); end; |
Das macht der Thread ...
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TMainForm.CancelAutoClick(Sender: TObject); var Thread: TNetEnumThread; begin Thread.Terminate; end; |
Und so würde ich das ganze gerne beenden. Aber das klappt nicht. Und wie gesagt vermute ich, dass das an der Rekursion von LoadNetNode liegt.
Ich habe auch schon versucht, in dieser Procedure
Delphi-Quelltext
1:
| if terminated then exit; |
einzubauen, aber das funzt ebenfalls nicht.
Kann mir bitte mal jemand einen Tip geben, wie ich das Problem lösen kann?
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt