Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
18. Aug 2009
Ich hasse diese Header-Übersetzungen in Windows.pas. Dort ist es statt einem Zeiger ein var-Parameter; nimm also das @ weg.
@Hai: In der CL wird nicht MsgWaitForMultipleObjects verwendet - bis sich das aufgerufene Programm beendet hat, werden also keine Nachrichten verarbeitet und das eigene Programm "hängt".
Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
18. Aug 2009
CPU-Last ist nicht der einzige Grund, Polling zu vermeiden. Durch Polling kann Windows deinen Programmcode nicht in die Auslagerungsdatei schieben, da er immer wieder benötigt wird. Die Alternativlösung ist auch nicht komplizierter.
Statt
Repeat
Sleep(50);
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
Until (ExitCode<>STILL_ACTIVE) Or...
Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
18. Aug 2009
Will er währenddessen weiterarbeiten? :gruebel: Dann habe ich da etwas missverstanden.
Forum: Win32/Win64 API (native code)
Delphi
by Apollonius,
18. Aug 2009
Ich würde lieber den Timeout INFINITE und ggf. MsgWaitForMultipleObjects nehmen. Polling ist böse.