delphi 创建自己的定时器 定时清理内存  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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.

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.047106027603149 seconds