Buongiorno gente. Ennesima richiesta di aiuto... se non capite chiedete, oggi ho problemi nello scrivere chiaramente... dormito poco. Devo far fare delle cose al programma (ma va?) e una parte di queste è gestita da un metodo... in pratica di solito questa funzione è lanciata dall'utente, mentre in questa situazione devo farla in automatico... niente di che, il codice è lo stesso, quindi col metodo risparmio righe. In breve il codice è qualcosa del genere: if controllo = valore metodo_in_questione ... [altro codice] ... end ... [ecc. ecc.] ... Il problema però è che ciò che deve essere eseguito dal metodo deve essere fatto PRIMA del resto del codice, mentre così com'è il programma lancia il metodo e passa immediatamente ad eseguire il codice "sottostante", esce anche dall'"if" e prosegue. Ho provato a mettere degli "sleep" appena sotto il metodo sperando di far prendere tempo affinché le operazioni del metodo terminassero, ma mi mandano in pausa tutto, poi ho dato un'occhiata alla gestione del thread e delle attese, ma anche questa non è una soluzione... Il sistema più semplice sarebbe di riscrivere tutto il codice che mi serve dentro l'"if", ma mi scoccia... già ho tanto di quel codice duplicato e non ottimizzato che basta, una volta che posso e so come evitarlo, vorrei poter usare uno stile decente... Qualcuno sa come dovrei fare? Grazie in anticipo e a presto.
on 2012-04-30 10:46
on 2012-04-30 11:02
2012/4/30 Daneel Olivaw <daneel.olivaw.r@gmail.com>
> snip
scusa ma metodo_in_questione crea un thread? se si puoi usare #join. o
forki un processo figlio? (anche in questo caso puoi aspettare il
processo
figlio nel padre).
ciao
stefano
on 2012-04-30 11:09
Stefano Pigozzi wrote in post #1058932: > 2012/4/30 Daneel Olivaw <daneel.olivaw.r@gmail.com> > >> snip > > > scusa ma metodo_in_questione crea un thread? se si puoi usare #join. o > forki un processo figlio? (anche in questo caso puoi aspettare il > processo > figlio nel padre). > > ciao > stefano Temo di no, perché non sono riuscito a vedere un processo figlio, ma potrebbe anche darsi che stia usando il comando thread nel modo sbagliato. L'idea infatti sarebbe stata quella che hai suggerito, ma in ogni caso non mi sembra l'ottimale... o sbaglio?
on 2012-04-30 11:14
2012/4/30 Daneel Olivaw <daneel.olivaw.r@gmail.com> > Temo di no, perch non sono riuscito a vedere un processo figlio, ma > potrebbe anche darsi che stia usando il comando thread nel modo > sbagliato. > L'idea infatti sarebbe stata quella che hai suggerito, ma in ogni caso > non mi sembra l'ottimale... o sbaglio? se ho capito bene il problema metodo_in_questione deve bloccare l'esecuzione finch non torna, questo di solito avviene a meno che dentro metodo_in_questione deleghi lavoro a un thread o a un processo; in quel caso se vuoi comunque bloccare (per rendere l'esecuzione sincrona) devi utilizzare le primitive di sincronizzazione: #join con i thread e #wait con processi.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.