본문 바로가기
컴퓨터/C#

[C#] 자원 관리 - Managed와 Unmanaged 차이

by Begi 2019. 7. 13.
반응형

C#의 자원은 크게 Managed Resource와 Unmanaged Resource로 나눌 수 있다.

 

Managed Resource

C#에서 Managed Resource는 GC (Garbage Collector)에 의해 자동으로 자원이 해제된다. C++에서는 new로 만든 변수를 delete 하지 않으면 메모리 릭이 발생하지만 C#에서는 GC가 자동으로 메모리를 해제한다.

 

Unmanaged Resource

Unmanaged Resource는 사용자가 직접 자원을 해제해야 한다. Unmanaged Resource는 대부분 C# 내부가 아닌 윈도우에서 사용하는 자원이다.

 

Unmanaged Resource는 Dispose나 using으로 자원을 해제한다. 자원을 해제하지 않으면 윈도우에서 사용하는 자원이 계속 증가하고 메모리 릭이 발생하여 윈도우를 다시 시작해야 한다.

 

Unmanaged Resource의 종류는 다음과 같다.

● GDI (Graphics Device Interface) 관련 객체

Bitmap, Brush, DC, Enhanced Metafile DC, Font, Memory DC, Metafile, Metafile DC, Palette, Pen, Extended Pen, Region

Process

● Mutex

 

C#은 포인터도 없고 대체로 안전하게 만들어졌지만 Unmanged Resource를 해제하지 않을 경우는 조금 위험하다.

 

반응형

'컴퓨터 > C#' 카테고리의 다른 글

C# Mutex 사용법  (0) 2019.08.05
C# UDP 프로그램  (0) 2019.07.16
C# 다른 프로그램 실행하기  (0) 2019.07.04
C# using 사용하는 이유  (0) 2019.07.04
C# 다른 프로그램 제어  (0) 2019.06.26

댓글