schneller als erlaubt ? [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

schneller als erlaubt ? [erledigt]

Beitrag von AUGE_OHR »

hi,

ich führe das ganze in einem Thread aus

Code: Alles auswählen

oThread:SetInterval( 5 ) 
d.h. 5/100 = 20 Mal / Sekunde
bei 1000 / 20 = 50 Sekunden

nun braucht er aber "nur" 37.5 bzw 38.5 Sekunden was doch "zu schnell" ist oder ?
100 75159859 75122734 37125 37500.00 0 100
101 75160234 75122734 37500 37500.00 0 101
102 75160609 75122734 37875 37500.00 0 102
103 75160984 75122734 38250 37500.00 -1 103
104 75161359 75122734 38625 37500.00 -1 104
105 75161734 75122734 39000 37500.00 -2 105
106 75162109 75122734 39375 37500.00 -2 106
2 75163234 75162859 375 37500.00 37 2

639 74913640 74873765 39875 38125.00 -2 639
2 74913828 74913765 63 38430.00 38 2
Die Zeiten kann ich auch ungefähr mit meinem iPhone messen also zeigt er nicht nur Mist an.

das ist der Code zum berechnen

Code: Alles auswählen

METHOD DXE_ProgressBar:CalcTime()

   nProz := ROUND( nRange / ::nMaxProz ,0)
   IF (::nValue % nProz) == 0

      IF ::nCount = 0
         ::nStart := SystemUpTime()
         ::nCount++                                // now increase counter
         RETURN ::cTimeText
      ENDIF

      ::nStop := SystemUpTime()

      nSum  := ::nStop - ::nStart                  // Ticks in milliseconds
      nFull := (nSum / ::nCount) * (::nMaxProz)    // calculate Max Time
      nTime := ROUND( (nFull - nSum) / 1000,0)     // time left
      ::nCount++                                   // now increase counter

      // debug
      nPart := ROUND(::nValue/nProz    ,0)
      OnDummy(::nCount,::nStop,::nStart, nSum, nFull, nTime , nPart)
kann mich jemand aufklären warum er schneller als 50 Sekunden ist ?

---

Nachtrag : die Erklärung ist einfach ... ich hatte das Maximum verändert

Code: Alles auswählen

*  oProgress:Maximum := 1000
   oProgress:Maximum := aSize[1]
ich habe da experimentiert ob ich statt 100% nicht die Anzahl der Pixel nehmen kann ...
gruss by OHR
Jimmy
Antworten