我编写了继承Image的类,并在初始化类时初始化了图像源数组,
触发渲染时,代码如下:调试后,我发现代码
this.Source = _listOfImageSource[_currentIamgeIndex];
会导致内存泄漏。
但我不知道如何纠正这个?如何在Image源更改之前释放内存。
任何评论?
public void CompositionTarget_Rendering(object sender, EventArgs e)
{
GC.Collect();
GC.WaitForPendingFinalizers();
if ((_listOfImageSource.Count > 0) &&
_currentIamgeIndex < _listOfImageSource.Count)
{
this.Source = null;
this.Source = _listOfImageSource[_currentIamgeIndex];
}
_currentIamgeIndex += _stepInterval;
if (_currentIamgeIndex > _listOfImageSource.Count) //stop the animmation
{
this.Visibility = Visibility.Hidden;
_parentWindow.Visibility = Visibility.Hidden;
this.Source = null;
CompositionTarget.Rendering -= CompositionTarget_Rendering;
}
}