PDA

Visualizza la versione completa : [VC++] Distruzione di una classe


Alcott
01-03-2007, 16:43
Ciao a tutti.
Dopo aver fatto la premessa che sto muovendo da poco i primi passi verso il C++, vi illustro il mio problemino :mame:

In pratica ho una classe Loop così definita nell'header


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:



...
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 :ciauz:

MItaly
01-03-2007, 18:41
Ma tu stai usando due thread separati, giusto?

Alcott
02-03-2007, 21:30
Ciao.
Si: quando premo su Esegui Loop, viene creato un nuovo thread per eseguire le operazioni.

MItaly
02-03-2007, 21:42
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.

Alcott
07-03-2007, 17:01
Risolto tramite l'aiuto della variabile.

Grazie 1000 :ciauz:

MItaly
07-03-2007, 17:04
Non c'è di che; è una delle tecniche usate più di frequente in questi casi.
:ciauz:

Loading