IDisposable 사용하기
'IDisposable'은 관리되지 않는 리소스를 해제하는 메커니즘을 제공하는 .NET 프레임워크의 인터페이스로. .NET 가비지 수집기는 파일 핸들, 창 핸들, 네트워크 소켓, 데이터베이스 연결 등과 같은 관리되지 않는 리소스를 직접 해제하지 않아서 가비지 수집기(GC)를 돕기 위해 클래스에 이러한 유형의 리소스를 사용해서 해제하거나 다시 사용하ㅏㄹ 개체를 준비하는 모든 작업에 사용 한다.
IDisposable 인터페이스에는 정리 코드를 포함하도록 구현되는 Dispose라는 단일 메서드가 포함되어 있다. IDisposable을 구현하는 개체 작업을 마쳤으면 해당 Dispose 메서드를 호출해야 한다. 이렇게 하게되면 개체가 보유하고 있는 모든 리소스를 해제할 수 있으므로 메모리 누수를 방지하는 데 도움이 된다.
< 예시 >
public class MyResource: IDisposable
{
//Imagine this is some large unmanaged resource.
private bool _disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
// Free managed resources
}
// Free unmanaged resources
_disposed = true;
}
}
//Finalizer
~MyResource()
{
Dispose(false);
}
}
Microsoft IDisposable을 구현하는 개체 사용 : [링크]
Microsoft IDisposable : [링크]
★☆☆☆☆
반응형
'개발 > 기본) 기본기' 카테고리의 다른 글
기본기)제네릭 타입(Generic Type) (4) | 2023.08.04 |
---|---|
기본기)벡터 정규화 및 단위 벡터 (0) | 2023.07.24 |
기본기c# )날짜 포맷: DateTime Format 정리 (HH:mm tt, yyyyMMddHHSS ,yyyyMMddhhSS, yyyy-MM-dd) (0) | 2023.06.16 |
기본기)c#) Method Chaining(메소드 체이닝) (0) | 2023.04.19 |
C#) return Swtich (C# 8.0 Switch Expression) (0) | 2023.01.25 |
댓글