View Full Version : [VB6] Cronometro e allocazione CPU
error 404
03-08-2009, 22:05
Due domande rapide:
1) Come posso implementare un cronometro che parta al click di un pulsante e termini al verificarsi di un evento? Non ho mai usato l'orologio, quindi sono completamente digiuno a riguardo.
2) C'è un modo per allocare più risorse possibili ad un solo exe? So che aprendo il task manager ed aprendo la scheda processi si può impostare la priorità, ma aumenta davvero la velocità?
grazie ciao
nuovoUtente86
03-08-2009, 22:12
Non conosco bene VB6 ma se posso consigliarti una via implementativa per la prima domanda è quella del pattern state: ti uscirà una realizzazione molto semplice e pulita.
Per la seconda, se si lavora con thread nativi del sistema l' utilizzo delle priorità ti consente di interagire con la quantizzazione assegnata al thread.
Ad esempio il sistema delle priorità di java, non ha alcuna reale interferenza con l' esecuzione reale del kernel-thread.
error 404
03-08-2009, 22:42
Pattern state? Quantizzazione? Di che si parla?
Chiedo scusa, ma mi sono dimenticato di dire che non sono molto esperto... non fino a questi livelli :(
Due domande rapide:
1) Come posso implementare un cronometro che parta al click di un pulsante e termini al verificarsi di un evento? Non ho mai usato l'orologio, quindi sono completamente digiuno a riguardo.
2) C'è un modo per allocare più risorse possibili ad un solo exe? So che aprendo il task manager ed aprendo la scheda processi si può impostare la priorità, ma aumenta davvero la velocità?
grazie ciao
1) Semplicemente con l'uso di un Timer. Puoi avere un Timer che "conta i secondi" per conto suo ( Timer1 - interval = 1000 ), oppure con un tecnica un po' più raffinata, che si appoggia al Timer di sistema ( Timer2 - interval = 1000 ). Poi dipende da che livello di precisione deve avere il tuo cronometro... :
Private timer1Ticks As Long
Private tempoStartTimer2 As Date
Private elapsedSecTimer2 As Long
Private Sub Command1_Click()
timer1Ticks = 0
Timer1.Enabled = True
tempoStartTimer2 = Now
elapsedSecTimer2 = 0
Timer2.Enabled = True
End Sub
Private Sub Timer1_Timer()
timer1Ticks = timer1Ticks + 1
lbl_timer1.Caption = timer1Ticks
End Sub
Private Sub Timer2_Timer()
elapsedSecTimer2 = DateDiff("s", tempoStartTimer2, Now)
lbl_timer2.Caption = elapsedSecTimer2
End Sub
2) Si può modificare la priorità di un processo da VB6 via API. Dai un'occhiata a questo esempio :
http://www.freevbcode.com/ShowCode.asp?ID=516
Che questo poi garantisca un aumento di prestazioni sulla tua applicazione, nello specifico, sta a te verificarlo... ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.