Memory Leak en un TextBox de WPF
Llevo tiempo sin escribir y voy a intentar volver a la carga si el trabajo me deja, hoy quisiera comentaros una “fuga de memoria” que se les producía a unos compañeros míos. El problema se les daba en un TextBox en el que el usuario introducía un montón de información y detectaban que el consumo de memoria se les disparaba.
El problema en este caso es sencillo ya que esta reportado por Microsoft, para que funcione el Undo en el TextBox por dentro implementa una pila Undo Stack en el que va guardando todos los cambios que se producen en el TextBox para que el usuario pueda hacer Undo. Imaginaros la cantidad de memoria que consume esa pila por cada pulsación de tecla, la manera de “solucionarlo” es utilizar la propiedad UndoLimit del TextBox que por defecto viene a –1, aquí indicamos el limite de eventos de Undo que queremos, en este caso el valor por defecto es –1, lo que quiere decir infinito.
Para solucionarlo solo pusimos la propiedad UnLimit con el valor 0 (en este caso nos interesaba que no tuviera Undo)
<Application.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="UndoLimit" Value="0" />
</Style>
</Application.Resources>
Espero que os ayude y tengais cuidado