最近在做一个远程视频和屏幕传输程序,出现了一个很奇怪的现像,代码如下:
m_recJpg是一个TJpgImage动态创建的对像,有图片信息
VideoRemote是放在窗体上的一个TImage控件下面是不断的更新内容的部分代码.代码一秒种大约运行15次,在主窗体中运行,没有在线程中。
VideoRemote.Picture.Bitmap.Canvas.Lock;
try
VideoRemote.Picture.Bitmap.Assign(m_RecJpg);
finally
VideoRemote.Picture.Bitmap.Canvas.Unlock;
end;
以上代码加入后就会出现内存泄露的问题,不加都很正常。加入后VideoRemote上能正常显示视频,如果用鼠标点击,移动窗体时,有可能出现内存泄露问题,但如果没有去动。都比较正常
m_recJpg是一个TJpgImage动态创建的对像,有图片信息
VideoRemote是放在窗体上的一个TImage控件下面是不断的更新内容的部分代码.代码一秒种大约运行15次,在主窗体中运行,没有在线程中。
VideoRemote.Picture.Bitmap.Canvas.Lock;
try
VideoRemote.Picture.Bitmap.Assign(m_RecJpg);
finally
VideoRemote.Picture.Bitmap.Canvas.Unlock;
end;
以上代码加入后就会出现内存泄露的问题,不加都很正常。加入后VideoRemote上能正常显示视频,如果用鼠标点击,移动窗体时,有可能出现内存泄露问题,但如果没有去动。都比较正常
http://www.fzyw.cn/111.jpg
Access violation at address 005A08e6 in module'bjhighspeedsys.exe'.Write of address 04d23c82
2. 在适当的位置写 VideoRemote.Picture := nil