Hi,
So sollte es mit weniger CPU last gehen:
Delphi-Quellcode:
While BerechnungOffen do
begin
//Thread erstellen
//Thread mit Daten füttern
repeat
dwWaitResult := WaitforSingleObject(Thread.Handle, 200);
if dwWaitResult <> WAIT_OBJECT_0 then
begin
Application.ProcessMessages;
end;
until dwWaitResult = WAIT_OBJECT_0;
//Thread freigeben
end
Hierbei dient BerechnungOffen nur zum Beenden der gesammten Berechnung.
Du wirst ohne eine Steuerung auserhalb des Arbeitenden Threads nicht auskommen.
Edit : oder so wie alzaimar es vorgeschlagen hat mit Jobs dafür giebts hier auch irgendwo einen Code.