Titolo: Chiudere i processi correttamente uscendo da 4D *
Categoria: Codice |
|
Ultimo Aggiornamento: 02/08/04 |
Il metodo
On Exit Database viene eseguito all'uscita del database. Questo metodo viene eseguito da 4D quando viene eseguita un'istruzione
QUIT 4D o quando viene scelta la voce di chiusura applicazione da menu. Se il metodo
On Exit Database è vuoto, l'applicazione verrà chiusa immediatamente (senza tenere conto quindi delle operazioni attualmente in esecuzione), altrimenti, se contiene del codice, 4D attende per chiudersi che il metodo venga portato a termine: possiamo sfruttare questa attesa per far sì che i processi attivi vengano chiusi con cognizione.
Intanto, all'apertura del database impostare la variabile booleana <>StoChiudendo_b impostandola a False. A questo punto nell'
On Exit Database la impostiamo a True e "risvegliamo" ogni processo:
<>StoChiudendo_b:=
TrueFor ($i;1;Count tasks)
RESUME PROCESS($i)
CALL PROCESS($i)
End for Così facendo il programma sa che 4D sta per chiudersi: ragion per cui si dovrebbe programmare ogni metodo che usa dei cicli e che vogliamo sia chiuso correttamente in maniera tale da controllare lo stato di "chiusura" di 4D guardando il valore della variabile <>StoChiudendo_b.
Per quel che riguarda invece i metodi dei form, visto come abbiamo scritto il metodo di chiusura, viene generato un evento
On Outside Call che possiamo gestire:
Case of : (
Form event=
On Outside Call)
If (<>StoChiudendo_b)
CANCEL ` o qualsiasi altra istruzione sia necessaria
End if End case
Inviato da: PierPaolo Sichera |
|
Visite: 16296 |
Se accedi con utente e password, puoi aggiungere dei commenti.