Jonas Skrevet 9. mars 2004 Del 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.. Lenke til kommentar
aadnk Skrevet 9. mars 2004 Del 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. Lenke til kommentar
Jonas Skrevet 9. mars 2004 Forfatter Del 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? Lenke til kommentar
GeirGrusom Skrevet 11. mars 2004 Del 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 Lenke til kommentar
aadnk Skrevet 12. mars 2004 Del 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. Lenke til kommentar
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å