问题描述:
最近发现使用Graphics绘制圆弧时,偶尔出现内存溢出问题。具体如下图:
测试流程及解决方案:
1、调试,找到报错位置,如下图所示。但未找到SafeNativeMethods.Gdip源码,无法进一步分析代码,估计是传入参数错误导致问题。
2、 添加调试代码,发现sweepAngle参数在小于0.1时,大概率出现内存溢出问题;
3、sweepAngle参数设置为0.01.稳定复现内存溢出问题;
4、添加sweepAngle参数最小值判断,多次测试,未复现内存溢出问题。
结论:
使用DrawArc绘制圆弧时,添加圆弧参数(sweepAngle)判断。
DrawArc参数