WPF图像多源一个接一个地改变导致内存泄漏

时间:2015-01-11 09:36:07

标签: wpf image

我编写了继承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;

        }
    }

0 个答案:

没有答案