没有选择处理SolidColorBrush。
如何防止SolidColorBrush对象的内存泄漏?
我甚至无法使用'使用',因为SolidColorBrush没有实现IDisposable接口。
答案 0 :(得分:2)
答案 1 :(得分:0)
这是我的经验。
如果我使用以下代码,则在运行数十万次时会发生巨大的内存泄漏。
SolidColorBrush brush = new SolidColorBrush( helper.ConvertValueToColorCanvas(colorValue, slider.Value));
mainCanvas.rects.Add(new MyCanvas.MyRect() { Brush = brush, Rect = new Rect(p0X + leftMargin + width, p0Y + height, (p2X - p0X), (p2Y - p0Y)) });
但是,如果我使用下面的代码,则泄漏会部分停止。
mainCanvas.rects.Add(new MyCanvas.MyRect() { Brush = new SolidColorBrush( helper.ConvertValueToColorCanvas(colorValue, slider.Value)), Rect = new Rect(p0X + leftMargin + width, p0Y + height, (p2X - p0X), (p2Y - p0Y)) });
因此,与其直接创建构造函数,不如创建新的solidbrush变量,它对我有用。