![]() |
Sleep ohne Win32 API
Hi.
Kann mir jemand sagen, ist es möglich eine Sleep Procedure zu implementieren, die das Gleiche macht, wie Sleep von Win32API ? Dabei ist zu beachten dass ich keine while oder repeat Schleife im Kauf nehmen darf, weil die dann die CUP Auslastung auf 100% hochtreiben. |
Re: Sleep ohne Win32 API
![]() eine Procedure von Hagen:
Delphi-Quellcode:
CPU-Auslastung < 1 % (nicht auf einem 386 getestet :mrgreen: )
procedure Delay(MSecs: Integer);
var Tick: DWord; Event: THandle; begin Event := CreateEvent(nil, False, False, nil); try Tick := GetTickCount + DWord(MSecs); while (MSecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, MSecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; MSecs := Tick - GetTickcount; end; finally CloseHandle(Event); end; end; |
Re: Sleep ohne Win32 API
Danke, geht auch wunderbar. Eigentlich wollte ich etaws in ASM, also nicht OP bezogen...
|
Re: Sleep ohne Win32 API
Zitat:
Was spricht eigentlich gegen das Original :gruebel: ...:cat:... |
Re: Sleep ohne Win32 API
Zitat:
|
Re: Sleep ohne Win32 API
Zitat:
Rat mal was das: ![]() Du schuldest mir übrigens eine Tischkante. :warn: Mal aus Interesse: Was für Systemcalls hast du denn schon implementiert? Da du nach ![]() Mal was zum Lesen: Aber vorher wäre wohl das sinnvoll: |
Re: Sleep ohne Win32 API
:mrgreen: & :cheers:
|
Re: Sleep ohne Win32 API
@negaH: bitte keine OT Posts :mrgreen: :zwinker: .
Lucky, bist du lustig oder was ? Entweder habe ich mich fasch ausgedrückt, oder du traust mir zu viel. ;) Wie auch immer, es geht um ein Program, ein DatenbankServer, das im RealMode arbeitet. Sobald man das Rechner einschaltet, ist man in meinm Programm gelandet. So, jetzt ist das Problem, dass es 100% an CPU Leistung nimmt , wenn es nichts macht, d.h. wenn es auf Mouse oder Tastatur wartet. Wie könnte man es vorübergehend "einschlaffen" ? Es tut mir leid dass ich mich falsch ausgedrückt habe. EDIT Zitat:
Kaffe krigst du schon, wenn wir uns treffen ;). |
Re: Sleep ohne Win32 API
Zitat:
Zitat:
Zitat:
Aber da dein Programm sowoieso das einzige ist, was auf dem System läuft, was machst du dir Sorgen um die CPU Auslastung? Es gibt doch keinen anderen Prozess, der die Ressourcen benötigen könnte? |
Re: Sleep ohne Win32 API
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz