Countdown in eigenem Thread



  • Hallo alle zusammen,

    Ich bin gerade dabei einen Countdown mit der Möglichkeit ihn zu unterbrechen und weiter laufen zu lassen zu schreiben.

    Der Countdown darf allerdings das eigentliche Programm nicht stoppen/ stören, deshalb wird in der Funktion starteCountdown ein eigener Thread gestartet.

    Nun mein Problem:

    Wie unterbreche oder notfalls beende ich diesen laufenden Thread? mit ExitThread usw. kann ich nur abgeschlossene Threads beenden bzw. unterbrechen.

    Gehe ich eventuell komplett falsch an die Sache heran??

    Ich habe leider die Quellen gerade nicht hier (Berufsschule).

    Vieleicht weiß ja einer von Euch, wie man eine solche Anforderung realisiert.

    Vielen Dank im Voraus,

    Gruß Patrick



  • Also einen Thread "beenden" könnte man mit der Funktion TerminateThread. Ist allerdings keine besonders gute idee, da eventuell geladene Resourcen, speicher des Threads nicht ordnungsgemäß freigegeben werden.

    Die bessere möglichkeit wäre hier, das ganze über einen switch zu machen, auf den sowohl das Hauptprogramm, als auch der Thread zugriff haben und dann den Thread so nach dem Motto zu schreiben:

    Thread
    -*-*-*
    do
    {
    
    } while (!bExitThread); 
    
    Hauptprogramm
    -*-*-*-*-*-*-
    bExitThread = false;
    HANDLE hThread = StartThread();
    
    /* ... */
    
    // Beende Thread
    bExitThread = true;
    WaitForSingleObject(hThread);
    
    // Thread sauber beendet...
    

    Das mit der Pause könntest du auch wiederum über einen Switch/Ein Event lösen oder aber auch über die Funktion SuspendThread


Anmelden zum Antworten