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