c#关于非托管内存的释放问题

硬件:大华sdk

软件平台:win10+vs2015

背景:近期在做大华工业相机SDK的采集的时候,用到Marshal.copy,将托管的代码转换成非托管的指针内存,由于没有及时释放内存指针,导致pc的内存一直上涨,通过查看代码之后发现是因为内存指针的原因,所以使用 Marshal.FreeHGlobal(pData);去释放了托管的内存指针,在循环运行的时候才没有导致内存上涨,并且通过这此的测试,发现在循环采集的过程中,将RGB的格式转换成Hobject,Hobject类型的iamge图像可以不去dispose,不会导致内存溢出,这个和我之前的认知是有些不一样的,原先在循环采集的过程中,我都会去dispose,并且防止释放的不干净还会用gc.collet,但是现在测试之后发现不去释放也可以,所以就没有去释放,这样一来就方便我对内存里面的数据进行提取了,而不用去担心被dispose了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值