FIX: Dynamicresource를 사용 하 여 brush 개체를 참조할 때 메모리 누수가 WPF 응용 프로그램에서 발생.

기술 자료 번역 기술 자료 번역
기술 자료: 2651992 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

다음 시나리오를 고려 하십시오.
  • Microsoft를 대상으로 하는 Windows Presentation Foundation (WPF) 응용 프로그램을 만듭니다.Microsoft NET Framework 3.0.NET Framework 3.5입니다.
  • 응용 프로그램 색 개체와 브러시 개체는 응용 프로그램의 XAML 파일에서 정의합니다.
    • 브러시 개체를 사용 하는 DynamicResource color 개체를 참조 합니다. 예를 들어,
      <Application.Resources>
      
      <Color x:Key="color1">#ff4050ff</Color>
      
      <SolidColorBrush x:Key="brush1" Color="{DynamicResource color1}"/>
      
      </Application.Resources>
    • Brush 개체 이름으로 참조 되는 DynamicResource WPF 창 또는 사용자 정의 컨트롤 또는 다른 개체입니다. 예를 들어,
      <Window x:Class="WpfApplication6.Window1"
      
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      
      Title="Window1" Height="300" Width="300" Background="{DynamicResource brush1}">
      
      </Window>
  • 열거나 창 또는 사용자 컨트롤의 인스턴스를 닫습니다.

이 시나리오에서는 인스턴스는 루트에서 가비지 수집 (GC) 힙 및 해제. 창 또는 사용자 컨트롤의 점점 더 많은 인스턴스를 만들 때 시간이 지남에 따라 메모리 누수가 발생 합니다. 결국, 수신 된 System.OutOfMemoryException 예외가 발생 했습니다.

참고 Microsoft 응용 프로그램을 대상으로 하는 경우이 문제가 발생 하지 않습니다.NET Framework 4입니다.

원인

WPF 런타임 내부 이벤트 처리기를 연결 하기 때문에이 문제가 발생을 ResourceReferenceExpression창 또는 사용자 컨트롤을 사용 하는 리소스와 연결 된 개체입니다. 창 또는 사용자 컨트롤 폐쇄 하 고 설정 하려면 null 있을 때이 이벤트 처리기 참조는 제거 되지 않습니다.

해결 방법

핫픽스 정보

지원 되는 핫픽스를 이제 Microsoft에서 사용할 수 있습니다. 그러나이 문서에서 설명 하는 문제를 해결 하려면 사용할 수 있습니다. 이러한 특정 문제가 발생 하는 시스템에만 적용 됩니다.

이 문제를 해결 하려면 핫픽스를 구하려면 Microsoft 고객 지원 서비스에 문의 하십시오. Microsoft 고객 지원 서비스 전화 번호 및 지원 비용에 대 한 정보를 전체 목록은 다음 Microsoft 웹 사이트를 방문 하십시오.
기술 지원 서비스
참고 특별 한 경우에는 Microsoft 기술 지원 전문가가 특정 업데이트로 문제를 해결할 수 있는지 결정 하는 경우 지원 요청에 따른 일반적 비용이 취소 될 수도 있습니다. 추가 지원 질문과 특정 업데이트가 문제의 필요 하지 않은 문제 지원 비용이 적용 됩니다.

필수 구성 요소

이 핫픽스를 적용 하려면 Microsoft 있어야 합니다.NET Framework 3.5.1은 다음 운영 체제 중 하나를 실행 하는 컴퓨터에 설치 하십시오.
  • Windows 7 서비스 팩 1 (SP1)
  • Windows Server 2008 R2 서비스 팩 1 (SP1)


다시 시작 요구 사항

영향을 받는 파일이 사용 중인 경우이 핫픽스를 적용 한 후 컴퓨터를 다시 시작 해야 합니다.

파일 정보

이 핫픽스의 글로벌 버전은 파일 특성 (또는 그 이후의 파일 특성) 있는 다음 표에 나열 된 있습니다. 이러한 파일의 시간과 날짜 협정 세계시 (UTC)에 나열 됩니다. 파일 정보를 볼 때 로컬 시간으로 변환 됩니다. UTC와 로컬 시간의 차이 확인 하려면 사용 하는 표준 시간대 탭에 날짜 및 시간 제어판 항목에서.

F지원 되는 모든 x86 기반 버전의 Windows 또는 7
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Presentationframework.dll3.0.6920.57385,283,8402011-12 월-1601: 49x 86
3.0.6920.57381,253,3762011-12 월-1601: 49x 86
Presentationcore.dll3.0.6920.57384,218,8802011-12 월-1601: 49x 86
Presentationframework.dll3.0.6920.57385,283,8402011-12 월-1601: 49x 86
Presentationhostdll.dll3.0.6920.5738131,3602011-12 월-1601: 49x 86
가능한4.0.40305.0296,2242011-12 월-1601: 49x 86
Presentationhostproxy.dll4.0.31106.0100,1362011-12 월-1601: 49x 86
3.0.6920.57381,253,3762011-12 월-1601: 49x 86

F또는 지원 되는 모든 x64 기반 버전의 Windows 7과 Windows 서버 2008 R x2
표 축소표 확대
파일 이름파일 버전파일 크기날짜시간플랫폼
Presentationcore.dll3.0.6920.57383,998,7202011-12 월-1601: 42x 64
Presentationframework.dll3.0.6920.57384,640,7682011-12 월-1601: 42x 86
Presentationhostdll.dll3.0.6920.5738172,3202011-12 월-1601: 42x 64
가능한4.0.31106.0321,3122011-12 월-1601: 42x 64
Presentationhostproxy.dll4.0.31106.0110,8882011-12 월-1601: 42x 64
3.0.6920.57381,114,1122011-12 월-1601: 42x 86
Presentationframework.dll3.0.6920.57385,283,8402011-12 월-1601: 49x 86
3.0.6920.57381,253,3762011-12 월-1601: 49x 86
Presentationcore.dll3.0.6920.57384,218,8802011-12 월-1601: 49x 86
Presentationframework.dll3.0.6920.57385,283,8402011-12 월-1601: 49x 86
Presentationhostdll.dll3.0.6920.5738131,3602011-12 월-1601: 49x 86
가능한4.0.40305.0296,2242011-12 월-1601: 49x 86
Presentationhostproxy.dll4.0.31106.0100,1362011-12 월-1601: 49x 86
3.0.6920.57381,253,3762011-12 월-1601: 49x 86



해결 과정

이 문제를 해결 하려면 다음 방법 중 하나를 사용 하십시오.
  • 사용 된StaticResource color 개체의 brush 개체를 참조 합니다. 예를 들어, 다음에 "현상" 절에 나와 있는 XAML 파일에서 코드의 첫 번째 부분을 변경 합니다.
    <Color x:Key="color1">#ff4050ff</Color> 
    <SolidColorBrush x:Key="brush1" Color="{StaticResource color1}"></SolidColorBrush>
  • 설정의x: 공유 옵션을 false로 DynamicResource 사용 됩니다. 예를 들어, 다음에 "현상" 절에 나와 있는 XAML 파일에서 코드의 첫 번째 부분을 변경 합니다.
    <Application.Resources>
            <Color x:Key="color1">#ff4050ff</Color>
            <SolidColorBrush x:Key="brush1" x:Shared="False" Color="{DynamicResource color1}" />
        </Application.Resources>



참조

자세한 정보는 DynamicResource 태그 확장에는 다음 MSDN 웹 사이트를 방문 하십시오.
DynamicResource 태그 확장에 대 한 일반 정보
WPF 브러시에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.
WPF 브러시에 대 한 일반 정보

현재 상태

Microsoft는 "적용 대상" 절에 나열 된 제품에서 문제가 있음을 확인 했습니다.

속성

기술 자료: 2651992 - 마지막 검토: 2012년 1월 10일 화요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft .NET Framework 3.0
  • Microsoft .NET Framework 3.0 Service Pack 1
  • Microsoft .NET Framework 3.0 Service Pack 2
  • Microsoft .NET Framework 3.5
  • Microsoft .NET Framework 3.5 Service Pack 1
키워드:?
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbmt KB2651992 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:2651992

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com