Einzelnen Beitrag anzeigen

Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: 2 Threads starten/pausieren...

  Alt 17. Jun 2018, 22:18
Und wieso benutzt du dann nicht einfach wei unterschiedliche Routinen für den selben Thread? So bekommst du es dann ohne Überpfüfungen hin...

Delphi-Quellcode:
type

TMyThread = class(TThread)
private
  procedure First;
  procedure Second;
protected
  ExecutionRoutine: TProcedure;
public
  procedure Execute; override;
end;

procedure TMyThread.Execute; override;
begin
  while not Terminated do
  begin
    ExecutionRoutine;
  end;
end;

procedure TMyThread.First;
begin
  //Falls (nicht B), unterbreche für zweite Routine
  if not B then
  begin
    ExecutionRoutine := Second;
  end;
end;

procedure TMyThread.Second;
begin
  //Nach Beendigung wieder erste Routine
  ExecutionRoutine := First;
end;
EDIT: Kannst du natürlich auch mit anonymen Methoden machen, falls dein Delphi das unterstützt. Hab ich allerdings weggelassen, denn ansonsten könntest du ja auch direkt TThread.CreateAnonymousThread(...) nehmen.
Dennis

Geändert von Dennis07 (17. Jun 2018 um 22:22 Uhr)
  Mit Zitat antworten Zitat