Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154

    [VC++] Distruzione di una classe

    Ciao a tutti.
    Dopo aver fatto la premessa che sto muovendo da poco i primi passi verso il C++, vi illustro il mio problemino

    In pratica ho una classe Loop così definita nell'header
    codice:
         class Loop : public CDialog
    {
        ...
    }
    Da un'altra classe mi creo un oggetto di tipo Loop e vi associo il dialog IDD_LOOP e la rendo modale:

    codice:
         ...
         objLoop = new Loop(GetDlgItem(IDD_LOOP));
         objLoop->DoModal();
         ...
    In IDD_LOOP ho due pulsanti: "esegui loop" ed "esci". Se premo su "esegui loop" comincia ad eseguire delle operazioni, ma se premo il pulsante di uscita (che mi chiama la EndDialog(0) ) chiude la finestra ma le operazioni lanciate da "esegui loop" continuano.
    Vorrei che invece una volta premuto il pulsante "esci", mi "distruggesse" direttamente la classe e quindi tutte le operazioniche sta eseguendo (oltre a chiudere il dialog). Ho provato con il distruttore (quello di default) ma pare non funzionare.
    Avete qualche consiglio?
    Come sempre, grazie

  2. #2
    Ma tu stai usando due thread separati, giusto?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154
    Ciao.
    Si: quando premo su Esegui Loop, viene creato un nuovo thread per eseguire le operazioni.

  4. #4
    Allora limitati ad uccidere il thread... oppure inserisci da qualche parte una variabile che, se in un certo stato, indica all'altro thread di terminare. L'altro thread di tanto in tanto controllerà tale variabile e, nel caso in cui sia nello stato particolare, smetterà di eseguire le operazioni che stava facendo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Alcott
    Registrato dal
    Jul 2003
    Messaggi
    154
    Risolto tramite l'aiuto della variabile.

    Grazie 1000

  6. #6
    Non c'è di che; è una delle tecniche usate più di frequente in questi casi.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.