WPF中的内存泄漏

时间:2009-08-13 12:52:16

标签: wpf memory-leaks 3d

我写了一个非常简单的新手应用程序,带有一个6面多面体(一个“盒子”),当我点击一个按钮时它会旋转180度。然后在下一次单击时再次旋转。每次轮换都会抓住另一个90MB,直到我关闭应用程序才会释放。该框在XAML中定义。 StoryboardDoubleAnimationPropertyPath等都是在构造函数中创建的ONCE。按钮代码如下所示:

    private void button_Storyboard1_Click(object sender, RoutedEventArgs e)
    {
        GC.Collect();

        if (_bFront)
        {
            _myDoubleAnimation.From = 0;
            _myDoubleAnimation.To = 180;
            _bFront = false;
        }
        else
        {
            _myDoubleAnimation.From = 180;
            _myDoubleAnimation.To = 0;
            _bFront = true;
        }
        _myDoubleAnimation.Duration = _Duration;
        Storyboard.SetTargetName(_myDoubleAnimation, "rotate_me");
        Storyboard.SetTargetProperty(_myDoubleAnimation, _PropP);
        _sb.Children.Add(_myDoubleAnimation);
        _sb.Begin(this.viewport3D1);
    }

经过几次轮换后,我失去了记忆!发生了什么事?

1 个答案:

答案 0 :(得分:1)

这里可能完全错误,但是你不是每次点击都会将_myDoubleAnimation添加到_sb.Children,而不仅仅是更新吗?