Qt: Thread-Problem



  • Hallo,
    Mein Problem ist folgendes: Ich erstelle einen neuen Thread, der in der Funktion run() in ein Excel Sheet schreibt. Innerhalb von run() wird ein neues Objekt der Klasse Excel erzeugt. Excel* excel = new Excel().
    Am Ende von run() wird delete excel aufgerufen. (Soweit alles logisch)

    Listctrl::run() 
    { 
    Excel* excel = new Excel(); 
    . 
    . 
    delete excel; 
    }
    

    Nun möchte ich aber den Fall abfangen, dass der Benutzer die dazugehörige Oberfläche schließt und somit den Thread beendet.
    Das Problem hierbei ist das beenden des Worker-Threads. Da der Thread nicht bis zum Ende von run() läuft, wird delete excel nicht aufgerufen und somit bleibt das Excel Sheet im Arbeitsspeicher vorhanden (Str+Alt+Entf; 50 Mal Excel geöffnet). Das Problem ist, dass Excel nur innerhalb von run() bekannt ist und selbst eine Adress-Kopie auf ein global erzeugtes Excel-Objekt nicht funktioniert.
    Hat jemand eine Idee und kann mir helfen??

    lg



  • Wieso 2 Threads? Unnötig, ein Mod hätte dich verschoben.



  • Sorry, dachte so erreicht es vll mehr 🙂


Anmelden zum Antworten