J'ai écrit une application newbie très simple avec un polyèdre à 6 faces (une «boîte») qui pivote de 180 degrés lorsque je clique sur un bouton. puis pivote de nouveau sur le clic suivant. Chaque rotation attrape 90 Mo de plus et ne lâche pas jusqu'à ce que je ferme l'application. La boîte est définie dans le code XAML. Les Storyboard
, DoubleAnimation
et PropertyPath
, etc, sont tous créés une seule fois, dans le constructeur. Le code du bouton ressemble à ceci:Fuite de mémoire dans WPF
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);
}
Après quelques rotations, je suis à court de mémoire! Que se passe-t-il?
s'il vous plaît pourriez-vous me dire quelle carte gfx c'est s'il vous plaît? –