PDA

View Full Version : [VB6] Fare aspettare al programma che si verifichi un evento


Mr. X
31-01-2008, 18:53
Ciao Ragazzi,

ho un piccolo questio da porvi: in una routine ad un certo punto devo farsì che il programma aspetti che una variabile booleana (che viene usata in un timer) sia vera per poi continuare l'elaborazione. Secondo voi va bene fare un ciclo while vuoto o rischio di inchiodare il PC?

Grazie,
Marco.

simoneart
31-01-2008, 19:22
Puoi far si che dopo che la variabile booleana è stata valorizzata venga scatenato un evento: raiseevent bla bla

Al verificarsi dell'evento fai eseguire la routine che vuoi

© Rocky
01-02-2008, 17:01
Purchè si abbia la certezza che la variabile venga trovata, altrimenti il ciclo gira a vuoto in eterno (leggi PC inchiodato)
A menochè non ci sia un codice di controllo per evitare l'inconveniente.

cionci
02-02-2008, 10:42
Non è accettabile un'attesa attiva. Metti almeno un Sleep di qualche decina di ms. Evita prima di tutto che la CPU vada al 100% durante l'attesa.
Inoltre queste cose si gestiscono con i costrutti per la concorrenza messi a disposizione dal sistema operativo, non certo con le variabili booleane ;)
Ad esempio in questo caso ci sta bene un semaforo (con le API CreateSempahore, OpenSemaphore, ReleaseSemaphore).

Mr. X
02-02-2008, 13:05
Non è accettabile un'attesa attiva. Metti almeno un Sleep di qualche decina di ms. Evita prima di tutto che la CPU vada al 100% durante l'attesa.
Inoltre queste cose si gestiscono con i costrutti per la concorrenza messi a disposizione dal sistema operativo, non certo con le variabili booleane ;)
Ad esempio in questo caso ci sta bene un semaforo (con le API CreateSempahore, OpenSemaphore, ReleaseSemaphore).

Grazie cionci,

il semaforo cui fai riferimento non lo conosco ma a naso mi sembra molto interessante. Ho provato a fare un breve ricerca di esempi vb6 su internet ma non ho trovato molto apparte la banale dichiarazione della API. Potresti scrivermi qualche stralcio di codice?

Grazie mille,
Marco.