我在使用图像时看到大量线程内存泄漏。那么,拥有一个通用功能,某种自己的 GC,它会在 NavigatingFrom 上运行,找到所有图像(甚至在虚拟化列表的模板中)并将它们设置为 null 是个好主意吗?
问问题
147 次
1 回答
2
这是一个遍历页面所有图像的助手:
public IEnumerable<Image> GetAllImage(DependencyObject root)
{
var count = VisualTreeHelper.GetChildrenCount(parentElement);
for (int i = 0; i < count; i++)
{
var child = VisualTreeHelper.GetChild(parentElement, i);
if (child is Image)
{
yield return (Image)child;
}
foreach (var image in GetAllImage(child))
{
yield return image;
}
}
}
您可以使用页面的根作为参数调用它,它应该将所有图像返回给您。
于 2013-09-19T17:08:42.280 回答