| |
|
|
|
Und si yo ahora no neustarten debería hätte Yo incluso el vollständige Posting absenden puede.
Apéndice:
Como De todos modos, KompilierenMarcaSeparación zeigt, dass winmm.dlls timeGetTime() no sólo genauer, pero auch más rápido como &getTickCount es. |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.04.2009 ▲ |
|
|
|
|
RGH | ... wobei mich el Hilo daran erinnert, dass Yo esta Características para el Systemvariable &GetTickCount ya siempre veces austtauschen quería. Und bevor ego otra vez vergesse, Yo lo ahora igual hecho. In el nächsten XProfan-Versión verbirgt se hinter &GetTickCount el sistema API TimeGetTime.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 27.04.2009 ▲ |
|
|
|
|
Frank Abbing | Ein alter Hut wurde veces otra vez ausgegraben.
Roland: Geh una Schritt más y escribir auch Sleep en. |
|
|
| |
|
|
|
Sebastian König | Frabbing, Beitrag=52083, Zeitpunkt=28.04.2009
Ein alter Hut wurde veces otra vez ausgegraben.
Roland: Geh una Schritt más y escribir así auch Sleep en.
Das wäre una bastante schlechte Concepto! Sleep con Bucle, el el Tiempo abfragt, wäre letztlich sólo una Busy Wait y se ejecuta así el Concepto hinter Sleep entgegen...
MfG
Sebastian |
|
|
| |
|
|
|
| Frabbing, Beitrag=52083, Zeitpunkt=28.04.2009
Ein alter Hut wurde veces otra vez ausgegraben.
Exactamente, zeigt aber: Ein guter Hut a falschen Tiempo es ähnlich relevant como una Schlechter a Richtigen.
Verhält se una klein wenig tal vez como en el Heisenbergsche Unschärferelation beschrieben - aber como es wohl más Sebastian unser Crack . |
|
|
| |
|
|
|
RGH | IF, Beitrag=52085, Zeitpunkt=28.04.2009
Frabbing, Beitrag=52083, Zeitpunkt=28.04.2009Ein alter Hut wurde veces otra vez ausgegraben. Exactamente, zeigt aber: Ein guter Hut a falschen Tiempo es ähnlich relevant como una Schlechter a Richtigen. Verhält se una klein wenig tal vez como en el Heisenbergsche Unschärferelation beschrieben - aber como es wohl más Sebastian unser Crack .
Nun, en diesem Fall war lo wohl una alter Hut a richtigen Tiempo, porque Yo hatte mi Delphi-IDE con el XProfan-Projekt offen y podría el Austausch el API-Función erledigen, bevor ego otra vez vergesse!
Saludo Roland
Nachsatz: Was el Sleep betrifft ha Sebastian natürlich bastante: Das wäre entonces algo muy más (siehe API-Doku a Sleep): Sleep son primero una vez el Prozessor para otro anstehenden Aufgaben frei, wartet entonces mindestens (!) el angegebene Anzahl Millisekunden y beansprucht entonces el Prozessor otra vez para el Programa. Selbst beim Parámetro 0 se primero el Prozessor freigegeben, allerdings sólo en se inmediatamente otra vez su Dienste a versichern. (Mit una Sleep 0 al rechten Platz puede ser somit wirkungsvoll verhindern, dass ser Programa 100% Prozessorlast verursacht sin lo allzu heftig auszubremsen. Besonders en größeren Rechen-Schleifen kann así algo una Segen ser, si uno z.B. todavía Surfen oder Spielen voluntad, während el PC para una como wild ackert.) Natürlich podría uno z.B. una WAIT programa, dass el exakten Millisekunden wartet, aber el dürfte entonces el Prozessor no liberación, en en todos Fälle rechtzeitig weitermachen a puede, y sería más a solch unfreundlichen Programmen führen, el Windows ausbremsen. Und el voluntad sí eigentlich keiner. |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 28.04.2009 ▲ |
|
|
|
|
Frank Abbing |
Sleep con Bucle, el el Tiempo abfragt, wäre letztlich sólo una Busy Wait y se ejecuta así el Concepto hinter Sleep entgegen...
Pensé más daran WaitForSingleObject con un Semaphorenobjekt en el Wartephasen (jeweils 1 ms) oder sólo WaitForSingleObject con el entsprechenden Abbruchszeitraum utilizarse. Kann natürlich ser, dass el API genauso ungenau arbeitet como Sleep (habs todavía no getestet), aber una Intento wäre lo sí wert. Mein Vorschlag zielte en kleine Zeiträume de unos pocos Millisekunden, niemand voluntad el Sistema para Sekunden oder länger lahmlegen. La idea, el hinter Sleep steckt, Aunque bien, el Ausführung aber schlecht. El heutigen Prozessoren trabajo así rápidamente, dass Yo una Ungenauigkeit de 15-16 ms pro benutztem Sleep para fahrlässig halte. |
|
|
| |
|
|
|
| Kannste doch selber, obige Tabla (Bild) zeigt doch el en normalen Computern más que 1 X-Tick pro MS posible es.
Also por qué no simplemente do{ caso zeitAlle : romper } - wäre doch MS-genau, salvo vlt. en Uraltkrücken... |
|
|
| |
|
|
|
Frank Abbing | Sí, Yo hatte bastante, como el Ejemplo zeigt: KompilierenMarcaSeparaciónDeclare text$,sema&
Def WaitForSingleObject(2)!kernel32,WaitForSingleObject
Def CreateSemaphore(4)!kernel32,CreateSemaphoreA
Def CloseHandle(1)!kernel32,CloseHandle
Def timeGetTime(0)!WINMM,timeGetTime
Def timeBeginPeriod(1)!WINMM,timeBeginPeriod
Def timeEndPeriod(1)!WINMM,timeEndPeriod
timeBeginPeriod(1)
text$=myxprofan
sema&=CreateSemaphore(0,1,1,Addr(text$))
WhileLoop 2000
AddString Wert in ms: +Str$(timeGetTime())
WaitForSingleObject(sema&,5) 5 ms
EndWhile
ListBox$(Counter,2)
timeEndPeriod(1)
CloseHandle(sema&)
End
El Zeitmessung es (como eingestellt) en el 5 ms-Takt (kein ser, dass AddStrings schonmal una ms verschluckt). El CPU-Auslastung liegt en Null. Das dürfte para Sleep una genauerer Ersatz ser.
Verhält se una klein wenig tal vez como en el Heisenbergsche Unschärferelation beschrieben - aber como es wohl más Sebastian unser Crack .
Mag ser. Mi Solución funktioniert todavía. |
|
|
| |
|
|
|
Frank Abbing |
Kannste doch selber, obige Tabla (Bild) zeigt doch el en normalen Computern más que 1 X-Tick pro MS posible es. Also por qué no simplemente do{ caso zeitAlle : romper } - wäre doch MS-genau, salvo vlt. en Uraltkrücken...
Lo va sí por lo tanto, dass Sleep no millisekunden-genau arbeitet. Mit el GetTick-Ersatz arbeite Yo ya largo. Sogar mein Junior benutzt ihn para ser Woormy. Yo rede aber de Sleep. |
|
|
| |
|
|
|
| |
|
| |
|
|