Sie haben es nicht gesagt, aber wenn Ihre Anwendung mehr als einen Thread verwendet, könnte dies die Menge an CPU, die das Betriebssystem für Ihren Prozess aufwendet, erhöhen (lesen Sie z. B. über Zeitscheiben und Thread-Switches nach).
Das Betriebssystem kann auch einige Ihrer Speicherseiten auslagern, wodurch weniger Speicher verbraucht wird und/oder Speicherzugriffe in der "Wartezeit" reduziert werden.
Wenn Sie also nur einen Thread verwenden und auch keine zusätzlichen Nachrichtenschleifen haben, könnte der Aufruf von Sleep() ein guter Weg sein, da dies dem Betriebssystem signalisiert, dass Sie für eine lange Zeit keine Zeitscheibe mehr benötigen.
Vermeiden Sie YieldThread()/SwitchToThread() und Ihre eigene Zeitmessung (z.B. mit Now()), denn das würde bedeuten, dass viele Threadwechsel stattfinden, um nichts zu tun ....!
Eine andere Methode könnte sein, Folgendes zu verwenden WaitForMultipleObjects mit einem großen Timeout, damit Ihre Anwendung noch auf Nachrichten reagieren kann.
0 Stimmen
Wie kann man den Speicher freigeben/freigeben?
1 Stimmen
Solange Sie kein Speicherleck haben, brauchen Sie sich um den Speicher keine Sorgen zu machen. Wenn Sie ein Speicherleck haben, beheben Sie es. SysInternals ist hier Ihr Freund.
0 Stimmen
Ihre Anwendung laufen zu lassen ist bereits eine Verschwendung von CPU und Zeit, verwenden Sie den Windows Scheduler, wie der Typ unten vorschlägt!