|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
[VB] Uso del timer
Salve ragazzi, sto proprio impazzendo con il controllo timer, non riesco a capirne il suo funzionamento.
In pratica devo mettere "a tacere" il programma utilizzando il timer, non voglio usare l'api Sleep perchè occupa risorse ed il programma sembra busy. Ad esempio imposto un Interval di 30 secondi, poi setto .Enabled = True e chiamo la sub del timer, la quale fa eseguire un'operazione nulla (k = 0) Questo è inserito in una Do While che esegue delle operazioni, il risultato è che il programmino mi va in infinite loop Come si usa sto benedetto timer? dove sbaglio?
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
Codice:
Function sleep(Dt) t0 = Timer Do Until Timer - t0 > Dt DoEvents Loop End Function
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Già non ci avevo pensato
A parte gli scherzi, un paio di righe di commento? Non ho capito proprio tutto, thx
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
è una funzione sostitutiva della Sleep implementata in VB.
non blocca gli altri eventi ma introduce un ritardo di Dt secondi nel programma.
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Lo proverò e ti farlò sapere, grazie mille!
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Ho creato la function che mi hai suggerito, ma quando si attiva lo sleep la cpu schizza al 100%, cosa che vorrei evitare.
Come lo imposto il ciclo ed il timer? Grazie ancora.
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
prova a togliere il Do Events
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'attesa attiva è sempre sconsigliata... Questa non blocca gli eventi dell'interfaccia utente, ma è pur sempre un'attesa attiva...
In VB puoi usare il Timer già presente nel framework (l'orologio nella toolbox di sinistra) o le API di Windows... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Ecco ifnatti sono + propenso ad usare il timer, come ho detto prima, anche xkè me lo hanno altamente consigliato (vedi altri thread miei in questa sezione)
Ma non riesco a gestirlo come si deve, mi sono letto un paio di guide ma nada, non ne capisco la meccanica Suggerimenti?
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Vuoi che un evento si verifichi ogni 30 secondi ?
Inserisci 30000 nel campo interval del timer... La procedura di gestione del timer (doppio click sul timer) è quella che viene chiamata ogni 30 secondi...finita quella procedura il timer verrà inizializzato nuovamente... Per disattivarlo o attivarlo basta agire su .Enabled... |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Quindi se imposto l'interval a 30 secondi ed ho attivo il timer, ogni 30 secondi ripete la stessa azione, creando una sorta di ciclo? Se è così sarebbe perfetto, appena ho 2 minuti vedo di provarlo.
Spero di aver capito bene, grazie mille!
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì...funziona così...
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Sto riscontrando ancora problemi, in pratica ho un ciclo FOR e, all'interno di esso, mi serve la famosa PAUSA, la quale è impostata con un timer chiamato appunto PAUSA. Ma non funziona, è come se non ci fosse
Questa è la codifica: Codice:
pausa.Interval = timerserv 'iimpostato a 20000 sono 20 secondi? (credo di si)
pausa.Enabled = True
For I = 0 To ciclo
SendKeys "{ENTER}", True
pausa_timer
Next I
.....
Private Sub pausa_timer()
SendKeys "^{PGDN}", True
End Sub
In pratica questo ciclo mi serve per switchare tra un tab e l'altro in firefox, ad un tempo prefissato di secondi (timerserv) per un certo numero di volte (ciclo). Lui mi fa tutto all'istante fregandosene delle pause Questo timer mi fa impazzire!! Help me!
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
usa il mio.
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: May 2001
Città: Triggiano
Messaggi: 4459
|
Mi risulta sempre busy con il tuo metodo, ora ho capito come funziona il timer e va alla grande
Grazie a tutti per i consigli
__________________
Asrock AB350M Pro 4 - AMD Ryzen 7 5800x - 2x8GB Ram Corsair Vengeance LPX DDR4 3000 Mhz CL15 - MSI GeForce GTX 1070 Aero ITX 8GB - Sabrent 512GB Rocket NVMe PCIe M.2 2280 - Samsung 850 EVO 250GB Sata3 - Samsung 27" C27JG5x QHD 144 Hz |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:35.


















