AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

W1000 Symbol 'Resume' ist veraltet ????

Ein Thema von RaSoWa1 · begonnen am 28. Mär 2010 · letzter Beitrag vom 24. Aug 2011
 
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#8

AW: W1000 Symbol 'Resume' ist veraltet ????

  Alt 22. Aug 2011, 23:01
Hmm.. wenn property Terminated wie in älteren Versionen ReadOnly ist und .Start das scheinbar auch nicht zurücksetzt ist es natürlich keine Lösung - dann kann man den Thread auch freigeben und einen neuen erzeugen.. das Konzept scheint mal wieder sehr gut durchdacht zu sein

Idee:
Delphi-Quellcode:
type
  TMyThread = class(TThread)
  private
    FHalted: Boolean;
    procedure SuspendIfHalted;
  public
    procedure Halt;
    procedure Continue;
  end;

  procedure TMyThread.Halt;
  begin
    FHalted := True;
  end;

  procedure TMyThread.Continue;
  begin
    FHalted := False;
    ResumeThread(Handle);
  end;

  procedure TMyThread.SuspendIfHalted;
  begin
    if FHalted then
      SuspendThread(Handle);
  end;

  procedure TMyThread.Execute;
  begin
    repeat
      EntercriticalSection;
      ..
      LeaveCriticalSection;
      ..
      //sichere Warteposition ausserhalb Lock
      SuspendIfHalted;
    until Terminated;
  end;
Zu jedem "Terminate" gehört dann natürlich ein "Continue" um den Thread ggf. aufzuwecken.

Alternativ zu SuspendIfHalted ohne echtes Suspend-/ResumeThread:
while FHalted and not Terminated do Sleep(10);

Grüsse, Dirk
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz