-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
1. Apr 2005
http://www.delphipraxis.net/internal_redirect.php?t=30870
letzer Post:
Ist das für Delphi schon fertig? Oder war das auf den CBuilder bezogen?
erster Post:
Ist das Demo-Programm zufällig irgendwo verfügbar? Habe leider kaum Ahnung, was diese Parameter alles bedeuten und ob ich sie dann auch richtig benutze.
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
31. Mär 2005
Selbst mit ThreadPriority Idle ist CPU-Auslastung 100%, weil es ja, wenn kein anderer Prozess weiter da ist, dann ja auch voll ausgeführt wird.
Multimedia Timer sieht kompliziert aus :(
Ich glaub, dann lass ich das lieber erstmal so und lass den Prozessor viel unnötige Arbeit tun. (Solange ich da nicht arbeiten muss *g*)
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
das ist doch nur ein Taktgeber, wenn ich mich nicht verguckt habe? Ein Takgeber habe ich doch einen genauen.
Weiß nicht, wie das damit gehen soll. Mit APIs tue ich mich immer schwer und wüsste auch nicht, wie ich das überhaupt hinbekommen soll. Falls es irgendwo eine Teil-Lösung gibt, wäre es nicht schlecht.
@robert_g
aja, jetzt erinner ich mich auch wieder. Sleep sollte man wohl...
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
http://www.delphipraxis.net/internal_redirect.php?p=149186
hClose := CreateEvent( ??? ); // Event damit der Thread sauber beendet werden kann
hTimer := CreateWaitableTimer(nil, false, nil);
SetWaitableTimer(hTimer, ???);
Dort steht, dass der Timer irgendwie gar nicht gut dafür geeignet ist. Selber ausprobiert habe ich es aber nicht.
CreateEvent hat sich dann damit auch gleich...
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
Sleep(15) funktioniert leider in zweilei Hinsichten nicht, wie ich oben schon geschrieben haben.
Wenn die Prozedur auf einem langsameren PC ausgeführt wird, benötigt sie vielleicht 10 ms (irgendeine ausgedachte Zahl)
Und wenn ich danach noch 15 ms warte, dann wird sie ja erst nach 25 ms wieder ausgeführt, was nicht beabsichtig ist.
Selbst auf dem langsameren PC könnte es alle 15ms ausgeführt...
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
Wie ich erst schrieb. Tastaturabgfrage, was gedrückt wurde zB.
Dann ein Thread zum Berechnen des Spieles, was ich halt nur alle 15-20 ms brauchen und dann auch noch das zeichnen des Bildes, wo 50 FPS völlig ausreichen. Mehr wäre unnötig und belastet den Prozessor nur unnötig.
Noch vergessen zu sagen, das Synchronize ist auch sehr wichtig, damit die TuEtwas-Prozedur nicht parallel mehrmals...
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
Von den Turitalbeispielen konnte ich die Hälfte nicht ausprobieren, weil irgendwelche Komponenten fehlen. Liegt wohl an der DelphiVersion (Delphi5)
Und von dem was ging, war nich das dabei, was ich suchte. War glaub immer 100% Auslastung.
100% CPU-Auslastung ist echt nicht schlimm?
Der Prozessor arbeitet doch dann die meiste Zeit unnötig und verbraucht bestimmt mehr Strom und wird auch...
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
Hmmm, sind die Demos die 7z-dateien? wenn ja, weiß leider nichts damit anzufangen. (hab auch nicht weiter gesucht, wo steht, was das überhaupt ist) edit: ach ups, da is ja ne zip datei bei (wie konnt ich die nur übersehen, guck ich gleich mal rein in die demons)
Das Synchronize ist auch wichtig und genau das soll es auch tun.
Das ausführen des TuEtwas dauert auch nicht sonderlich lange....
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
Ich hatte mir einige Beiträge hier im Forum durchgelesen und das mit sleep im Thread gefunden. Wie das funktioniert, wusste ich wirklich nicht. Und in der Delphi-Hilfe hatte ich nichts gefunden.
So wie ich es bei MSDN gelesen habe, ist sleep also äußerst ungünstig dafür?
Ich verstehe leider nicht, wieso das falsch ist, bzw wie ich es anders machen sollte. Ich habe einiges durchsucht, um...
-
Forum: Win32/Win64 API (native code)
Delphi
by Thorus,
30. Mär 2005
Hallo,
ich habe einen Thread, der das tut was er soll. Das Problem ist nur, dass die Prozessorleistung immer auf 100% ist.
uses rdtsc;
procedure TMyThread.Execute;
var
Zeit:int64;
begin