Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Thread: Suspend und Resume deprecated
5. Feb 2012, 10:03
In meinem aktuellen Projekt mache ich das über ein Event.
Delphi-Quellcode:
type
TMyThread = class(TThread)
private
FEvent: THandle;
...
public
procedure SuspendWork;
procedure ContinueWork;
...
end;
constructor TMyThread.Create;
begin
(* Non-Signaled-Event anlegen *)
FEvent := CreateEvent(nil, true, false, '');
...
end;
procedure TMyThread.ContinueWork;
begin
(* Event auf Non-Signaled zurücksetzen *)
ResetEvent(FEvent);
end;
procedure TMyThread.Execute;
begin
...
(* Falls Event Signaled ist, warten *)
while (WaitForSingleObject(FEvent, 0) = WAIT_OBJECT_0) and
not Terminated do
sleep(0);
if Terminated then
break;
...
end;
procedure TMyThread.SuspendWork;
begin
(* Event auf Signaled setzen *)
SetEvent(FEvent);
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|