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 正则提取txt中的email 数据

Delphi的字符截取函数leftstr,midstr,rightstr的介绍以及字符串拆分

Delphi application.restore; 简单用法

Delphi 关于xe10下indy发送字符串编码的问题

Delphi 多线程(tthread类的实现)实例

Delphi写的服务程序在服务管理器中显示“描述”

Delphi base32 的加密和解密

使用串口模拟工具进行串口程序开发调试

Delphi xe将图标和图像添加为资源

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



打赏

取消

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

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

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

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

评论

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