Jonas Skrevet 9. mars 2004 Skrevet 9. mars 2004 Hallo Har prøvd å telle millisekkunder nå, men det ser ikke helt ut til å virke! Bruker denne koden her nå: Dim i As Long Dim o As Long Private Sub Command1_Click() i = 0 o = 0 Timer1.Interval = 1 Timer2.Interval = 1000 Timer1.Enabled = True Timer2.Enabled = True End Sub Private Sub Timer1_Timer() i = i + 1 Text1.Text = i End Sub Private Sub Timer2_Timer() o = o + 1 Text2.Text = o End Sub Text1 skal vel nå 1000 akkurat når text2 når 1 osv, sant? eller er ikke interval i millisekkunder? Den koden der funker hvertfall ikke..
aadnk Skrevet 9. mars 2004 Skrevet 9. mars 2004 En timer med interval 1 vil ikke alltid kjøres 1000 ganger i sekundet. Dette er fordi en timer ikke tar i bruk multithreading og går derfor ikke videre på neste oppgave før den forrige er kjørt. Det brukes også mye systemressurser på å opptegne en tekst flere tusen ganger i sekundet. En timer kan heller ikke kalles tusen ganger, så for å løse dette sett interval til 10 eller høyere og adder variabelen med 10.
Jonas Skrevet 9. mars 2004 Forfatter Skrevet 9. mars 2004 Hmm, hvis jeg setter opp interval fra 1 til 10 og plusser på 10 så henger den fortsatt litt etter. På 100 er den ca rikitg, men fortsatt litt treg. Bare jeg som begyner å trenge en reinstal her eller?
GeirGrusom Skrevet 11. mars 2004 Skrevet 11. mars 2004 Prøv heller: Dim t_Start As Double Dim t_End As Double Dim milliseconds As Double t_Start = Timer() t_End = t_Start + 1 Do : While Timer() < t_End t_end = Timer() milliseconds = t_end - t_start MsgBox Str(milliseconds), vbInformation
aadnk Skrevet 12. mars 2004 Skrevet 12. mars 2004 Prøv heller: Dim t_Start As Double Dim t_End As Double Dim milliseconds As Double t_Start = Timer() t_End = t_Start + 1 Do : While Timer() < t_End t_end = Timer() milliseconds = t_end - t_start MsgBox Str(milliseconds), vbInformation Du er vel klar over at den koden bruker 100% av prossesoren? Det du bør gjøre er å legge til en Sleep deklarering. Private Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) Så skriver du f.eks Sleep 1 for å pause treaden i ett millisekund.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå