Salve a tutti
Esiste un comando che faccia in modo che il programma si fermi e finisca tutto quello che stava facendo?
Tipo DoEvents che c'è su VBA =S
Non mi sono spiegato molto bene, spero capiate![]()
Salve a tutti
Esiste un comando che faccia in modo che il programma si fermi e finisca tutto quello che stava facendo?
Tipo DoEvents che c'è su VBA =S
Non mi sono spiegato molto bene, spero capiate![]()
Il DoEvents esiste anche in VB.NET.
![]()
A me dice che non esiste![]()
Specifico: sto usando Visual Basic 2005 (Ho scritto .Net perchè in altri topic me l'avevano corretto)
Prova con:
codice:Application.DoEvents()
Amaro C++, il gusto pieno dell'undefined behavior.
Oltre all' Application.DoEvents() esiste la tecnica, sicuramente più impegnativa, del Multithreading. Se ti interessa guarda anche la seconda lezione.
![]()
![]()
Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
Occhio per occhio uguale... occhio al quadrato
Grazie a MItaly e a ShaleN,
Ho provato ma non ho risolto il problema.
Esiste un comando per "far fare una pausa" al thread?
Esiste il comando Threading.Thread.Sleep(milliseconds) che blocca il thread per tot millisecondi, ma comincio a non capire più cosa devi fare: posta un pò di codice o spiegati più chiaramente. Dire ...in modo che il programma si fermi e finisca tutto quello che stava facendo non significa un gran che: spiega esattamente quello che devi fare.Originariamente inviato da cepu96
Esiste un comando per "far fare una pausa" al thread?
![]()
Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
Occhio per occhio uguale... occhio al quadrato
Praticamente devo eseguire una routine molte volte, ma voglio che la esegua con un certo intervallo. Il codice non dice molto, ma lo posto
codice:playTone(1046, 1) playTone(1175, 1) Application.DoEvents() playTone(1319, 1) Application.DoEvents() playTone(1046, 1) Application.DoEvents() playTone(1046, 1) Application.DoEvents() playTone(1175, 1) Application.DoEvents() playTone(1319, 1) Application.DoEvents() playTone(1046, 1) Application.DoEvents() playTone(1397, 1) Application.DoEvents() playTone(1568, 1) Application.DoEvents() playTone(1760, 1) Application.DoEvents() playTone(1397, 1) Application.DoEvents() playTone(1568, 1) Application.DoEvents() playTone(1760, 1) Application.DoEvents() playTone(1760, 1) Application.DoEvents() playTone(1976, 1) Application.DoEvents() playTone(1760, 1) Application.DoEvents() playTone(1568, 1) Application.DoEvents() playTone(1397, 1) Application.DoEvents() playTone(1175, 1) Application.DoEvents() playTone(1760, 1) Application.DoEvents() playTone(1976, 1) Application.DoEvents() playTone(1760, 1) Application.DoEvents() playTone(1568, 1) Application.DoEvents() playTone(1397, 1) Application.DoEvents() playTone(1175, 1) Application.DoEvents()
Ma... un loop e un array no?Originariamente inviato da cepu96
Praticamente devo eseguire una routine molte volte, ma voglio che la esegua con un certo intervallo. Il codice non dice molto, ma lo posto
codice:...
Comunque se quei comandi bloccano il thread ti converrebbe lanciarli all'interno di un thread separato.
Amaro C++, il gusto pieno dell'undefined behavior.
Io ti consiglio un approcio completamente diverso (come ha fatto MItaly): prima di tutto dichiari un'array di Short e lo riempi con i parametri che dovrai passare a PlayTone.
Poi con un ciclo For...Next richiami la routine e inserisci un tot di pausa:codice:'Tre è un valore puramente indicativo, puoi mettere il valore che vuoi. Dim Parameters(3) as Short 'Per riempire l'array puoi usare anche un For...Next, purchè i numeri inseriti abbiano un qualche 'ordine che adesso mi sfugge. Parameters(0) = 1046 Parameters(1) = 1175 Parameters(2) = 1319 Parameters(3) = 1046
Naturalmente se fai tutto in un thread esterno, l'Application.DoEvents() non serve.codice:For i As Short = 0 To Parameters.Length - 1 PlayTone(Parameters(i), 1) Application.DoEvents() 'Processo gli eventi in coda Threading.Thread.Sleep(1000) Next
![]()
Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
Occhio per occhio uguale... occhio al quadrato