none
Picturebox의 BackGroundImage or Image 시스템 리소스 관련 질문입니다~ RRS feed

  • 질문

  • Winform에서

     PictureBox.backgroundImage = my.resource.GREEN 또는 PictureBox.Image = my.resource.GREEN

    을 Timer Interval 100에서 계속적으로 수행할 경우(몇일, 몇주 이상)

    이미지는 변동이 없으나 프로세스 메모리 사용량이 점점 올라가다 프로그램이나 OS가 멈추는 현상이 발생합니다.

     PictureBox.Image = my.resource.GREEN 자체가 현재 이미지를 대체하고 기존 이미지에 대한 리소스를 자동으로 해제하지 않나요?

    가비지 컬렉션을 명시적으로 선언도 해보았는데 따로 해제가 되지 않는 것 같습니다.

    (GC.Collect)

    이미지 사용에 대하여 계속해서 수행할 때 기존 리소스는 삭제되고 갱신이 되는지, 

    리소스가 계속해서 누적이 되는지 궁금해서 여쭤봅니다~



    • 편집됨 Student_WHKIM 2014년 5월 22일 목요일 오후 2:54
    2014년 5월 22일 목요일 오후 2:52

답변

  • 테스트 코드를 다음과 같이 작성한 경우, 메모리 leak으로 보이는 현상은 없었습니다.

            private void Form1_Load(object sender, EventArgs e)
            {
                ThreadPool.QueueUserWorkItem(
                (WaitCallback)( (obj) => 
                {
                    while (true)
                    { 
                        this.pictureBox1.BackgroundImage = Resources.earth;
                            Thread.Sleep(50);
                    }
                }), null);
                
            }
    메모리 변동의 원인이 PictureBox에 있는지 확실한가요?

    • 답변으로 표시됨 Student_WHKIM 2014년 5월 23일 금요일 오전 10:50
    2014년 5월 23일 금요일 오전 2:05

모든 응답

  • 테스트 코드를 다음과 같이 작성한 경우, 메모리 leak으로 보이는 현상은 없었습니다.

            private void Form1_Load(object sender, EventArgs e)
            {
                ThreadPool.QueueUserWorkItem(
                (WaitCallback)( (obj) => 
                {
                    while (true)
                    { 
                        this.pictureBox1.BackgroundImage = Resources.earth;
                            Thread.Sleep(50);
                    }
                }), null);
                
            }
    메모리 변동의 원인이 PictureBox에 있는지 확실한가요?

    • 답변으로 표시됨 Student_WHKIM 2014년 5월 23일 금요일 오전 10:50
    2014년 5월 23일 금요일 오전 2:05
  • 리소스가 계속 증가하다가

    this.pictureBox1.BackgroundImage = Resources.earth; 이와 같은 부분만

    주석처리 한 결과 리소스가 증가하지 않아

    Picturbox문제라고 판단하였는데 다른 컨트롤과 연관이 있는지 확인해 봐야겠네요

    (User Control에 수십개의 PictureBox가 있는 구조)

    테스트 및 답변 감사합니다.~!!!

    수고하세요~

    2014년 5월 23일 금요일 오전 10:57