wieder einmal threads
-
Hallo,
wie kann ich einen Thread stoppen.
In meinem Programm habe ich den Thread gestartet und muß diesen an einem bestimmten Punkt stoppen.
Irgendwann soll er dann wieder weiterlaufen.
Ich weiss allerdings nicht was der Thread zu diesem Zeitpunkt macht. Also mit Semaphoren oder bool´schen Variablen ist nichts.
Ich dachte es gäbe eine Funktion StopThread oder so ähnlich. Habe aber nichts gefunden.Danke
-
Ich dachte es gäbe eine Funktion StopThread oder so ähnlich.
Sowas gibt's auch, allerdings unter dem Namen SuspendThread().
-
@King: Danke für Deine Hilfe.
Hatte es gerade nochmals ergoogelt.Für alle die es interessiert:
So wird der Thread erzeugt HANDLE hthread = CreateThread( NULL, // Security Attribute 0, // Stack size, Default = 1 MB myfct, // Startadresse &parm, // Zeiger auf Parameter (VOID) NULL, // NULL oder CREATE_SUSPENDED &threadid ); // Zeiger auf ThreadID (DWORD) So erhält man an den Exit Code des Threads BOOL ok = GetExitCode( hthread, // Thread Handle &exitcode); // Exit Code (DWORD) Starten und Stoppen von Threads // Normalfall: Der Thread beendet sich selbst // Wird implizit oder explizit aufgerufen ExitThread (exitcode); // UINT exitcode DWORD // count wird erhöht suspend_count = SuspendThread (hthread); // count wird erniedrigt suspend_count = ResumeThread (hthread); BOOL // kill ok = TerminateThread (hthread, &exitcode);