Application->Terminate() funktioniert in Thread nicht



  • Hallo,

    Ich versuche eine Applikation mittels Application->Terminate() aus einem TThread heraus zu beenden, allerdings läuft die Appliklation einfach weiter.

    Habe bereits einen Breakpoint gesetzt und der Aufruf "Application->Terminate()" wird aufgerufen, nur geschieht nichts, die Applikation läuft weiter, auch der besagte Thread.

    Wie kann ich sonst die Applikation aus dem Thread heraus beenden?

    Danke!



  • Warum sollte man aus einem Thread heraus die Anwendung beenden wollen? Fragwürdiges Konzept...

    Sende eine Botschaft an das Mainform und beende die Anwednung von dort.



  • Hallo,

    Das Konzept muss so sein, kann ich nicht ändern (auch wenn es vielleicht auf den ersten Blick fragwürdig erscheint)

    Also geht's ohne die Botschaft nicht?

    Gruss



  • void __fastcall TLiveThread::CloseIt(void)
    {
            Application->Terminate();
    }
    //---------------------------------------------------------------------------
    void __fastcall TLiveThread::Execute()
    {
    	while(!Terminated)
            {
            Sleep(100);	
            Synchronize(CloseIt);
            break;
            }
    }
    


  • Vielen Dank sergey, so funktioniert es!


Anmelden zum Antworten