用内存共享会吃内存?
- Delphi(Pascal) code
type PashuRecord=record mStartP:Integer; mEndP: Integer; mTotalP: Integer; mCurrP: Integer; mPrevP: Integer; mBeat: Integer; mTime: Integer; mPSstatus: Integer; mMMstatus: Integer; end; pPR=^PashuRecord;var tPSR: pPR; PSR: PashuRecord; hwd: Thandle; p:Pointer;procedure TForm1.FormCreate(Sender: TObject);begin hwd:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,SizeOf(PSR),pchar('PaShuShareData')); if hwd=0 then ShowMessage('Failed');end;procedure TForm1.tmr1Timer(Sender: TObject);//var s:Integer;begin// hwd:=OpenFileMapping(FILE_MAP_ALL_ACCESS,False,pchar('PaShuShareData')); if hwd<>0 then begin p:=MapViewOfFile(hwd,FILE_MAP_ALL_ACCESS,0,0,0); if p<>nil then begin //s:=pPR(p)^.mBeat; Label10.Caption := IntToStr(pPR(p)^.mCurrP); end; end;end;1秒执行一次tmr1,把记录中的值显示出来。程序是可以运行的,但用任务管理器来看,程序占用内存量是每秒增大4K,这是什么原因?应该怎么解决?
[解决办法]
只映射不关闭
[解决办法]
UnmapViewOfFile