创建一个定时器,设置每隔N秒触发一次,也就是每隔多久进行一次内存清除!!
//调用
procedure TfmMain.Timer1Timer(Sender: TObject);
begin
TClearMemory.Create(False);
end;
ClearMemoryThread单元代码如下:
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
- unit ClearMemoryThread;
- interface
- uses
- Classes, SysUtils, Forms, Windows;
- type
- TClearMemory = class(TThread)
- private
- protected
- procedure Execute; override;
- public
- constructor Create(Suspended: Boolean);
- end;
- implementation
-
- procedure ClearMemory;
- begin
- if Win32Platform = VER_PLATFORM_WIN32_NT then
- begin
- SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
- Application.ProcessMessages;
- end;
- end;
-
- constructor TClearMemory.Create(Suspended: Boolean);
- begin
- inherited Create(Suspended);
- FreeOnTerminate := True;
- end;
-
- procedure TClearMemory.Execute;
- begin
- ClearMemory;
- end;
- end.
|
请发表评论