Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Thread: Suspend und Resume deprecated

  Alt 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
  Mit Zitat antworten Zitat