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


本文整理自网络,侵删。

 下面这个例子就是自定义时间清理内存空间。

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.

相关阅读 >>

Delphi 过滤开头 结尾 全部 空格的函数

Delphi获取硬件信息

Delphi 创建一个进程并读取其控制台输出内容

Delphi idhttp使用代理ip

Delphi 简单的封装messagebox对话框

Delphi 中文大写日期转换函数

Delphi xe android]获取屏幕的物理分辨率

Delphi webbroker iis cgi 的配置

Delphi 时间与字符串

Delphi 获取listbox1多选的值

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...