2009-08-30 16 views
5

Tengo algunos problemas de memoria con una aplicación de larga ejecución; He estado inspeccionando los métodos de pintura para asegurar que las escobillas estén correctamente dispuestas. En el caso donde se crea el Brush en el argumento de la función, ¿se eliminará el pincel después de la llamada?Cepillos desechables

El caso se describe a continuación:

 g.DrawString(valueText, Font, new SolidBrush(Color.Red), 

Respuesta

9

no estoy del todo seguro, pero no creo que es. Esto sería más seguro:

using(var redBrush = new SolidBrush(Color.Red) 
{ 
    g.DrawString(valueText, Font, redBrush); 
} 
+3

Puede estar seguro. –

+0

¿Qué hay de usar Pinceles.Red? No es necesario crear una instancia de esos. Y no debe desecharlos, por lo que no 'usar (....)' tampoco – toong

+0

Dado que esto se compila significa que el pincel es desechable y por lo tanto debe desecharse. –

4

No, debe hacerlo manualmente. Sin embargo, examine las clases Brushes y SystemBrushes, para pinceles listos para usar que puede usar sin crear otros nuevos (y que tampoco necesita/no debería desechar).

+0

No puede deshacerse de los cepillos originales. Si lo intentas lanzará. –

+2

Bueno, no debería. Desinfectar() pinceles ... – toong

Cuestiones relacionadas