Beendigung von Threads



  • Hallo,

    ich bin Anfänger in Sachen Mutlithreading und habe folgendes Problem:

    Ich habe einen Thread, der nachdem er bestimmte Aktionen ausgeführt hat noch eine Methode einer anderen Klasse aufruft. Danach sollte sich der Thread beenden. Das dummme ist aber das die Methode die der Thread zum Schluss noch aufruft wiedrum weitere Methoden aufruft, die den selben Thread schließlich wieder neu starten. Die Methode die der Thread aufruft, kommt also nie zurück und es entsteht eine Art "Endlosschleife".
    Wie könnte ich das umgehen? Gibt es einen Weg das der Thread die zwar eine Methode aufruft, diese Methode aber sofort zurückkommt, egal was in dieser Methode noch passier?

    Vielen Dank für Eure Hilfe!



  • Probier's mal mit Application->ProcessMessages(); am Anfang der Methode, die der Thread aufruft.

    - Windoof



  • Wie könnte ich das umgehen? Gibt es einen Weg das der Thread die zwar eine Methode aufruft, diese Methode aber sofort zurückkommt, egal was in dieser Methode noch passier?

    Diese Methode wieder in einem Thread? - Glaube zwar nicht wirklich, dass das das ist, was Du möchtest. Du musst halt sonst bei allem, was aufgerufen wird, möglicherweise ein z.B. "Terminate"-Flag einführen, dass gesetzt wird, wenn eine Beendung erfolgen soll. Dann muss jede Funktion aber darauf reagieren, und Schlaufen natürlich sich beenden!

    - Adrian



  • @Windoof: was genau soll das jetzt bringen?

    @Googli: Irgendwie bin ich zu doof das von dir geschilderte zu verstehen... gibst du mir noch ne chance und versuchst es anders zu formulieren? Bedenke: Wir haben keine Ahnung woran du grade arbeitest...


  • Mod

    Hallo

    ganz primitiv wuerde ich sagen:

    verwende doch das Botschaftssystem von Win (dafuer ist es doch da)

    neue Nachricht generieren
    am Ende deines Threads Botschaft (zB PostMessage) an dein Programm senden
    dieses Ereignis auswerten

    keine Ahnung ob das so funktioniert aber teste es mal

    MfG
    Klaus


Log in to reply