首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用内存共享会吃内存?解决方案

2012-03-29 
用内存共享会吃内存?Delphi(Pascal) codetypePashuRecordrecordmStartP:IntegermEndP: IntegermTotalP:

用内存共享会吃内存?

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

热点排行