2009-08-30 15 views
5

長時間実行しているアプリケーションでは、いくつかのメモリに問題があります。私は、ブラシが適切に配置されることを確実にするためにペイント方法を検査しています。ファンクションへの引数にBrushが作成された場合、コール後にブラシが破棄されますか?ブラシを廃棄する

場合は以下に概説されています

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

答えて

9

私は完全に一定ではないが、私はそれがあるとは思いません。これは安全です:

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

あなたは確信することができます。 –

+0

Brushes.Redの使用はどうですか?それらをインスタンス化する必要はありません。そして、それらを処分してはいけないので、 '使用していません(....)」 – toong

+0

これはコンパイルするとブラシが使い捨てであることを意味します。 –

4

いいえ、あなたは手動で行う必要があります。ただし、新しいものを作成せずに使用できる既製のブラシについては、クラスBrushesSystemBrushesを調べてください(また、処分する必要はありません)。

+0

ストックブラシを廃棄することはできません。あなたがそれを試してみると投げるでしょう。 –

+2

さて、ストックブラシを.Dispose()しないでください... – toong