본문 바로가기
이미지 매크로

C# UserControl에서 메모리 릭(Memory Leak)이 발생하는 경우 Dispose 인터페이스 재정의 하기.

by 업무자동화 2024. 3. 7.
반응형

유료 매크로 프로그램 다운로드

http://ngmsoftware.com/bbs/board.php?bo_table=product_review 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#매크로 #메크로 #매크로프로그램 #스마트스토어 #슬롯 #조회수매크로 #인스타매크로 #인스타그램매크로 #유튜브매크로 #좋아요매크로 #마케팅매크로 #슬롯매크로 #오토핫키매크로 #파이썬매크로 #네이버카페매크로 #댓글매크로 #블로그매크로 #카카오톡매크로 #가리기매크로 #상품입력매크로 #쿠팡매크로 #쇼피매크로 #코인매크로 #주식매크로 #바이럴마케팅매크로 #추천구독매크로

 

  • 엔지엠 커뮤니티 월 이용료: 4,500원, 1년 이용료: 55,000원 (전체 기능의 80프로)
  • 엔지엠 얼티밋 월 이용료: 6,500원, 1년 이용료: 77,000원 (전체 기능의 90프로)
  • 엔지엠 엔터프라이즈 월 이용료: 9,200원, 1년 이용료: 110,000원 (전체 기능 사용)

 

안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로의 뷰(Page, Dock을 통칭해서 일컷는 표현)는 UserControl로 되어 있습니다. UserControl은 Dock Container에 자동으로 추가되고, Dock Manager와 Workspace가 관리하는 구조로 되어 있습니다. 아무튼, 복잡한 내용은 일단 뒤로하고, UserControl에서 메모리 릭이 발생할 때 해결하는 방법에 대해 알아보겠습니다.

 

UserControl은 기본적으로 IDisposable을 상속받아서 구현하고 있습니다. 그렇기 때문에 추가적인 작업이 불가능합니다. 뷰에 추가된 컨트롤중에서 메모리 문제가 있는 컨트롤들은 명시적으로 Disposing 시켜줘야 합니다. 아래와 같이 UserControl이 메모리에서 해제될 때 자동으로 호출되는 OnHandleDestroyed 이벤트를 재정의해야 합니다.

        protected override void OnHandleDestroyed(EventArgs e)
        {
            this.treeView.Nodes.Clear();
            this.treeView.Dispose();
            base.OnHandleDestroyed(e);
        }

 

이 UserControl에는 TreeView가 추가되어 있습니다. TreeView 콘트롤에 추가된 모든 TreeNode를 삭제하고, TreeView도 Dispose해줍니다. 일반적으로 IDisposable를 상속 받아서 리소스를 명시적으로 제거하지만, Close 메소드를 추가적으로 제공하는 경우들도 있습니다. 엔지엠 매크로도 편집기 인터페이스들은 Close 메소드를 일부 구현해야 합니다.

        public void Close()
        {
            this.Dispose();
        }

 

C# 프로그래밍에서 Close 메소드를 호출하고, Dispose 메소드까지 호출하는 경우가 많습니다. 하지만, 로직상 Close 메소드를 한번만 호출해도 자동으로 Dispose까지 호출하기 때문에 중복해서 메소드를 불러올 필요는 없습니다. 아마도 예외없이 Close 메소드에서 Dispose를 호출할테니까요. 

 

그래서, Close 메소드를 강제해야 하는 인터페이스의 경우에 Dispose가 있으면 호출하고, 없으면 Close에서 리소스를 모두 해제해야 합니다. UserControl은 Dispose가 호출되면 자동으로 OnHandleDestroyed 이벤트가 호출됩니다.

 

[ 각종 자동화 매크로 및 RPA 프로그램 제작 해드립니다. ]

[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]

 

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#비활성매크로 #g102매크로 #철권매크로 #레이저마우스매크로 #ghub매크로 #녹화매크로 #키보드반복매크로 #로지텍마우스광클매크로 #플라스크매크로 #윈도우매크로 #비활성g매크로 #오토매크로 #자동사냥 #주식매크로 #오토핫키키보드 #오토핫키마우스 #오토핫키이미지 #지존오토 #기계식매크로 #하드웨어매크로 #무한반복매크로 #대량이메일발송매크로 #엑셀VBA매크로 #주식모니터링매크로 #이미지맥스 #심플핫키 #오토클리커 #UiPath #Brity #스푸퍼 #DKOM #모바일게임매크로 #다클라매크로 #다계정매크로 #인스타그램매크로 #짜맥매크로 #챗굴매크로

반응형

댓글