Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Avvio ed esecuzione di secondo thread in contemporanea
Forum Updated to NodeBB v4.3 + New Features

Avvio ed esecuzione di secondo thread in contemporanea

Scheduled Pinned Locked Moved Solved Italian
2 Posts 2 Posters 871 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    bvox123
    wrote on last edited by
    #1

    Buongiorno.
    E' domenica, ma io non ho pace. Consultando gli esempi trovati sul web sono riuscito a gestire un modulo in thread.
    Ho la main, la PrimaClasse derivata da QWidget e una SecondaClasse derivata da QThread.
    Ho dovuto mettere il caricamento della SecondaClasse nel main, altrimenti si distruggeva ancor prima di partire (non so perché, ma per ora poco importa) mentre il relativo start l'ho messo in un pulsante START della PrimaClasse ed ho dovuto dichiarare la SecondaClasse statica.
    Dato che l'esecuzione del thread SecondaClasse mi sembrava troppo veloce, alla fine ho aggiunto un msleep di mezzo secondo ed ha continuato a funzionare, ma ancora troppo velocemente. Allora ho modificato lo msleep in 2 secondi e, cosa strana, la SecondaClasse si chiude prima che l'esecuzione sia completata, segnalandomi l'errore QThread: Destroyed while thread is still running.
    Ho pensato di disabilitare l'autodistruzione della SecondaClasse inserendo all'inizio del run() l'istruzione this->setTerminationEnabled(false); ma non sortisce nessun effetto: se l'attesa è maggiore di 1 secondo la SecondaClasse si autodistrugge.
    Perché ? E come posso risolvere il problema ?
    bvox

    1 Reply Last reply
    0
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #2

      Ci sono molte cose confuse qui. Rimanderei a https://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/ per un chiaro esempio di come usare QThread correttamante.

      Come nota secondaria sleep e' quasi sempre una cattiva idea che diventa pessima se chiamato all'interno di QThread::run perche blocca l'event loop

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved