|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
|
uscire da un for
salve a tutti
sto usando il visual c++ 6.0 enterprise. devo implementare un ciclo for che compie un tot numero di iterazioni (scansione area schemo), e questo ciclo for deve ripetersi finche nn viene premuto un tasto sulla tastiera oppure si fa click col mouse su uno dei tasti.... sapreste dirmi come fare?
__________________
ho fatto affari con: na decina di anime |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
|
Quote:
nessuno mi sa aiutare?
__________________
ho fatto affari con: na decina di anime |
|
|
|
|
|
|
#3 | |
|
Registered User
Iscritto dal: Jan 2006
Messaggi: 22
|
Quote:
supponiamo che questo è il tuo ciclo for: dim mouse as integer Sub controllociclofor() dim i as integer for i = 1 to 10 ' operazioni da compiere.. if mouse = 1 then mouse = 0 exit for end if next end sub 'questo rileva l'evento clic..: Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown mouse=1 End Sub Note: all'evento clic, viene valorizzata la variabile: mouse =1 di conseguenza il ciclo for si ferma.. mah capisco che non ho risolto il tuo problema.. se puoi prendi spunto da questo.. By MrJohnny.. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Il loop se ho capito bene è in un thread, giusto?
|
|
|
|
|
|
#5 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
il thread è l'unità fondamentale di esecuzione, lo scheduler di Windows lavora con quelli: tu che sei esperto con le Win32 dovresti saperlo ![]() @swarm: per rispondere direttamente al titolo del topic, per uscire da un ciclo si usa break ^^ per sapere quando fare il break vedi tu, se vuoi lavorare con un solo thread ogni tanto penso che devi svuotare la coda dei messaggi, altrimenti se lavori con due thread penso che ti convenga mettere le elaborazioni lunghe in un worker a parte che ogni tanto deve controllare lo stato di un flag... siccome il worker thread il flag lo deve solamente leggere, non c'è bisogno di sincronizzare la variabile |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
|
Quote:
ti spiego meglio quello che devo fare... in pratica, il programma principale, una volta dato lo "start", esegue un ciclo for che fa la scansione di un'area dello schermo (plot+vari calcoli), e se nn succede nulla, finito un ciclo deve farne un altro. In pratica quello che voglio è che, se durante uno dei cicli for, premo su uno dei pulsanti di controllo o premo un tasto associato, il ciclo finisca,controlli cosa è stato premuto, aggiorni le variabili, e poi ricominci (se deve). (cioè mi va bene se l'aggiornamento variabili è fatto quando inizia una nuova scansione) Pensavo che una soluzione fosse lavorare con due thread (il principale per i comandi e un altro per il ciclo for), ma nn sapevo come fare..... Con un solo thread, come si fa a richiedere a un certo punto del programma, di esaminare quale tasto o quale evento mouse è avvenuto? GRAZIE!!
__________________
ho fatto affari con: na decina di anime |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
|
Quote:
raga, datemi una mano/consiglio... come faccio a verificare quali eventi sono accaduti durante un for?
__________________
ho fatto affari con: na decina di anime |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Castellammare di Stabia (NA)
Messaggi: 2031
|
raga, secondo voi dovrei gestire i messaggi tipo con PeekMessage e GetMessage?
__________________
ho fatto affari con: na decina di anime |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:39.



















