Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#3

AW: Thread: Suspend und Resume deprecated

  Alt 4. Feb 2012, 22:53
wenn ich einen thread starte und danach pausiere, mache ich das per suspend. das ist aber deprecated.

ich erwecke ihn nachher wieder mit resume. das ist aber auch deprecated.
Hallo,

also ich nutze dazu immer eine Variable, die eben in Execute abgefragt und "von außen" gesetzt wird

Delphi-Quellcode:
type TMyThread = class(TThread)
  private
    FSleep : Boolean;
    FTerminated : Boolean;
  public
    procedure Execute; override;
    procedure GoToSleep;
    procedure WakeUp;
end;

procedure TMyThread.Execute;
begin
  while not (FTerminated) do
  begin
    if not (FSleep) do
    begin
      //Befehle abarbeiten
    end
    else
      Sleep(10);
  end;
end;

procedure TMyThread.GoToSleep;
begin
  FSleep := True;
end;

procedure TMyThread.WakeUp;
begin
  FSleep := False;
end;
nach bestem Wissen und Gewissen, aber ohne IDE aus dem Kopf runtergeschrieben

OK, das ist ein klein wenig anders, als den Thread wirklich "stillzulegen", aber wenn ich mich richtig erinnere, dann wurde dieses Verfahren auch hier schon empfohlen

edit2: richtig, hier war's gewesen
http://www.delphipraxis.net/149714-w...-veraltet.html

edit:
Huch, der rote Kasten war zwar da, aber meine Meinung will ich Euch trotzdem nicht vorenthalten
Tobias
Bitte nicht hauen , ich weiß es nicht besser

Geändert von silver-moon-2000 ( 4. Feb 2012 um 23:07 Uhr)
  Mit Zitat antworten Zitat