您的位置:首页 > 编程语言 > Delphi

DELPHI 创建自己的定时器 定时清理内存

2008-12-03 09:48 148 查看
google代码搜索确实是个好地方,就跟CSDN一样,资料真不少。下面这个例子就是自定义时间清理内存空间。
unit TrimWorkingSet;

interface

implementation

uses
SysUtils, Windows, ExtCtrls;

type
TTrimmer = class(TTimer) //继承自TTimer定时器类
public
procedure TimerTick(Sender: TObject);
end;

procedure TTrimmer.TimerTick(Sender: TObject);
var
CurrentPID, FocusedPID: THandle;
begin
CurrentPID := GetCurrentProcessId;//获取当前进程ID
GetWindowThreadProcessId(GetForegroundWindow, @FocusedPID);//获取顶层窗口进程ID
if (Win32Platform = VER_PLATFORM_WIN32_NT) and //是否运行在windows NT类系统
(CurrentPID <> FocusedPID) then             //并且顶层窗口进程不为当前进程时进行内存整理
SetProcessWorkingSetSize(CurrentPID, Cardinal(-1), Cardinal(-1) );
end;

var
Timer: TTrimmer;

initialization
Timer := TTrimmer.Create(nil);
Timer.Interval := 30000;//每半分钟定时检测
Timer.OnTimer := Timer.TimerTick;
finalization
if Assigned(Timer) then
Timer.Free;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: