Hallo allerseits,
ich hätte mal einige Fragen bezüglich TThreadpool unter XE7.
Wenn ich mit folgenden Code Worker erzeuge
Delphi-Quellcode:
TThreadPool.
Default.QueueWorkItem(
procedure
begin
TestPing5(
IP, Node, Interval, Hop);
end)
;
erzeugt er dann TTaskObjecte oder TThread Objecte? Frage weil in der Workerroutine dat hier funktioniert
PingResult.ThreadID:= TThread.CurrentThread.ThreadID;
beim Zugriff über TTask.CurrentTask knallt es, weil das Taskobject nil ist.
Und zweite Frage ich habe es jetzt so programmiert, das die Workers sich selber sauber beenden mittels globalen Boolean Stopvariablen. Finde ich sehr unschön. Zugriff von Außen habe ich damit auch nicht auf den Worker, um ihn zum Besipiel zu pausieren oder zu wieder aufzunehmen. Ich hab irgendwo gelesen, das TThreadpool eine Threadsichere Liste anbieten soll, mit der ich von Außen Zugriff auf die einzelnen Workers als TTask bekomme. Jedoch kann ich nirgens so eine Liste im TThreadpoolobject finden. Hat Jemand eine Idee?
mfg newbe