2009-08-30 3 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

음, 재고 브러쉬를 꺼내서는 안됩니다 ... – toong

관련 문제