C# Winfrom项目,运行程序一段时间后提示“内在不足”的报错信息。

在C# Winfrom项目,有一个form窗体,六个Panel控件(用于放置显示监控视频图像的用户自定义控件),
还有一个timer计时器控件(设置每隔2分钟调用其它六个监控视频图像放到对应的Panel控件)

目前遇到的问题是,监控点的视频图像有的由于网络好点显示加载视频图像快点,有的由于网络不是太好加载显示视频图像慢点。
在form窗体运行一段时间后,导致这个form窗体的六个Panel控件在轮流显示相应的六个监控视频图像后,提示“内在不足”的报错信息。
发现在这个时间段内,电脑CPU的使用率为90%至100%之间。

是不是将timer计时器控件的时间间隔设置多点(例如设置每隔6分钟)或者将运行这个程序电脑的硬件配置再改善下,硬件配置高点。请问这样可以解决此问题吗?
还是有其它的办法解决此问题?最好能提供相关的参考资料。谢谢!

c#

4个回答

监控视频图像的用户自定义控件是否有使用C++ COM等外部库,是否正确释放非托管资源,这些库本身有没有内存泄漏

长时间运行内存泄漏,得重点关注非托管资源的处理,建议对代码中申请、释放资源的地方进行配对检查,防止由于异常发生后,该释放或者关闭的资源
没有做。由于是实时监控,重点查在timer中申请的资源。看是不是每轮运行完后内存占用都增长。如果经验不足,可以考虑借助工具来排查,BoundsChecker Suite在官网有试用版,可以一用

timer的使用要小心,如果循环内的处理比较耗时,会出现重入现象;建议可以改为线程

Timer计时器控件会产生循环内存的,导致内存泄漏,所以会产生内存不足的错误。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问