Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Thread: Suspend und Resume deprecated

  Alt 5. Feb 2012, 09: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
  Mit Zitat antworten Zitat