delphi 内存管理,定期释放

创建一个定时器,设置每隔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

  1. unit ClearMemoryThread;
  2. interface
  3. uses
  4. Classes, SysUtils, Forms, Windows;
  5. type
  6. TClearMemory = class(TThread)
  7. private
  8. protected
  9. procedure Execute; override;
  10. public
  11. constructor Create(Suspended: Boolean);
  12. end;
  13. implementation
  14. //清理内存
  15. procedure ClearMemory;
  16. begin
  17. if Win32Platform = VER_PLATFORM_WIN32_NT then
  18. begin
  19. SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
  20. Application.ProcessMessages;
  21. end;
  22. end;
  23. //创建线程
  24. constructor TClearMemory.Create(Suspended: Boolean);
  25. begin
  26. inherited Create(Suspended);
  27. FreeOnTerminate := True; {这可以让线程执行完毕后随即释放}
  28. end;
  29. //线程启动
  30. procedure TClearMemory.Execute;
  31. begin
  32. ClearMemory;
  33. end;
  34. end.