FIX: .NET Framework 1.0 DateTimePicker 컨트롤을 사용할 때 사용하면 메모리 누수가 나타날 수 있습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 813354 - 이 문서가 적용되는 제품 보기.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
모두 확대 | 모두 축소

이 페이지에서

현상

Microsoft .NET Framework 버전 1.0 사용하여 응용 프로그램을 만들고 응용 프로그램에서 DateTimePicker 컨트롤이 사용할 경우 응용 프로그램을 실행할 때 메모리 누수가 알 수 있습니다.

원인

가비지 수집기는 액세스할 수 없는 메모리 수집할 때문에 이 문제가 발생합니다. Microsoft.Win32.UserPreferenceChangedEventHandler 대리자와 연결된 DateTimePicker 컨트롤입니다. 있는 DateTimePicker 컨트롤의 개체를 삭제할 때 이 대리자의 참조를 취소했습니다 있지 않습니다. 따라서 이 대리자가 가비지 수집기가 DateTimePicker 컨트롤의 개체 수집 못하게 합니다.

해결 방법

이 문제를 해결하려면 .NET Framework 1.0 최신 서비스 팩을 구하십시오.

최신 서비스 팩을 얻으려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://www.microsoft.com/downloads/details.aspx?familyid=6978D761-4A92-4106-A9BC-83E78D4ABC5B&displaylang=en

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다. 이 문제는 Microsoft에서 수정되었습니다 .NET Framework 1.0 서비스 팩 3.

추가 정보

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

  1. Microsoft Windows 응용 프로그램을 만듭니다. 이렇게 하려면 다음과 같이 하십시오.
    1. Microsoft Visual Studio .NET 시작하십시오.
    2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트 를 클릭하십시오. 새 프로젝트 대화 상자가 나타납니다.
    3. 프로젝트 형식Visual C# 프로젝트 를 클릭하십시오.
    4. 템플릿Windows 응용 프로그램 을 클릭하십시오.
    5. 이름 상자에 MyProject 를 입력한 다음 확인 을 누릅니다. 기본적으로 Form1 이라는 폼이 만들어집니다.
    6. 보기 메뉴에서 도구 상자 를 클릭하십시오.
    7. 세 개의 TextBox 컨트롤을 Form1에 폼에 추가하십시오. 기본적으로 textBox1TextBox 컨트롤, textBox2TextBox 컨트롤 및 textBox3TextBox 컨트롤을 만듭니다.
    8. Form1 폼에 두 개의 단추 컨트롤을 추가하십시오. 기본적으로 button1Button 컨트롤 및 button2Button 컨트롤을 만듭니다.
    9. Form1 폼을. Form1_Load 이벤트 처리기에 다음 코드를 추가하여
      GC.Collect();
      GC.WaitForPendingFinalizers();
      long before = GC.GetTotalMemory(true);
      textBox1.Text ="Before test: " + before.ToString();
      GC.GetTotalMemory 메서드는 관리되는 메모리에 현재 할당된 바이트 수를 검색합니다.
    10. Form1 폼의 button1 을 두 번 클릭한 다음 Form1 폼 button1_Click 이벤트 처리기에 다음 코드를 추가합니다.
      long after;
      for (int i=0; i<100; i++) 
      {
      DateTimePicker dtp=new DateTimePicker();	
      dtp.Dispose();
      dtp=null;
      }
      after = GC.GetTotalMemory(true);
      textBox2.Text = " After test: " + after.ToString();
    11. Form1 폼을 button2, 두 번 누르고 Form1 폼을. button2_Click 이벤트 처리기에 다음 코드를 추가합니다
      GC.Collect();
      GC.WaitForPendingFinalizers();
      long after = GC.GetTotalMemory(true);
      textBox2.Text = " After Garbage Collection: " + after.ToString();
      GC.Collect 메서드 가비지 수집을 강제로 및 액세스할 수 및 역참조된 메모리를 모두 수집하려면 시도합니다.
    12. 파일 메뉴에서 모두 저장 파일을 모두 저장하려면 클릭하십시오.
  2. 빌드 및 Windows 응용 프로그램을 실행하십시오. 이렇게 하려면 다음과 같이 하십시오.
    1. 빌드 메뉴에서 눌러 빌드 솔루션.
    2. 디버그 메뉴에서 시작 을 클릭하십시오. Form1 대화 상자가 나타납니다. 관리되는 메모리에 할당된 바이트 수를 textBox1 텍스트 상자에 나타납니다.
    3. button1 을 클릭하십시오.

      응용 프로그램이 런타임에 DateTimePicker 컨트롤의 인스턴스를 만들고 DateTimePicker 컨트롤의 삭제합니다. 이 문제는 100 번 발생합니다. 100 발생 후 관리되는 메모리의 바이트 수를 textBox2 텍스트 상자에 나타납니다. 가비지 수집기는 액세스할 수 없는 메모리 위치에 수집하지 않습니다.
    4. button2 를 클릭하십시오.

    가비지 수집기는 응용 프로그램에서 호출하는 후 관리되는 메모리에 남아 있는 바이트 수를 textBox2 텍스트 상자에 나타납니다. 대부분의 경우 액세스할 수 없는 나타날 관리되는 메모리 계속 사용합니다.
자세한 내용은 In the Microsoft 기술 자료에 있는 문서를 보려면 다음 문서 번호를 누르십시오.
824684Microsoft 소프트웨어 업데이트를 설명하기 위해 사용되는 표준 용어에 대한 설명

참조

UserPreferenceChangedEventHandler 대리자에 대한 자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 방문한 웹 사이트:
http://msdn2.microsoft.com/en-us/library/microsoft.win32.userpreferencechangedeventhandler(vs.71).aspx
DateTimePicker 클래스에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/system.windows.forms.datetimepicker(vs.71).aspx

속성

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

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