
Originariamente inviato da
Vostradamus
Scusa il ritardo, ero fuori casa
Proviamo a fare un esempio.
Mettiamo di avere 2 profili di nome Pippo e Pluto.
Pippo nel suo enter task metterà a 1 la variabile %PIPPOVAR
Pluto invece userà %PLUTOVAR
L'exit task di pippo farà, ad esempio:
- Variable Set %PIPPOVAR=0
- wait 20 secondi
- perform task disconnessioni
L'exit task di pluto invece farà:
- variable set %PLUTOVAR=0
- wait 40 secondi
- perform task disconnessioni
Infine, il task disconnessioni potrebbe ad esempio fare così:
- if %PIPPOVAR = 0
-- if %PLUTOVAR = 0
----disconnetti paperopoli
----disconnetti topolinia
----disconnetti la fattoria di nonna papera
-- end if
- endif
Ho messo due if una dentro l'altra perchè tasker, se ricordo bene, non permette di controllare più di una condizioni in una volta sola...
Un'altra possibile soluzione sarebbe stata fare la somma algebrica delle variabili e controllare che il risultato fosse 0 (cosa che succede, ovviamente, solo se tutte le variabili valgono 0), ma mi sembrava che scritto così con le due if una dentro l'altra fosse visivamente più semplice da afferrare
Facendo in questo modo, ogni exit task può avere una wait di lunghezza diversa, ed allo stesso tempo il task che si occupa delle disconnessioni resta uno solo (più comodo da "manutenere" se ti capitasse per qualunque motivo di doverlo modificare), ed effettua le varie disconnessioni
solo se tutte le variabili sono a 0, quindi solo se tutti i profili interessati non sono attivi
EDIT: dimenticavo... ovviamente nelle proprietà del task disconnessioni avremo il collision handling impostato su abort existing task