Please Enable JavaScript!
Gon[ Enable JavaScript ]

가비지컬렉션을 강제로 실행시키고자 할때

기타 언어/C# & MFC
반응형

가비지 컬렉션을 강제로 실행시켜 객체를 메모리에서 바로 해제하고 싶을때
다음과 같은 클래스의 함수들을 호출하게 된다.

System.GC.Collect();
System.GC.WaitForPendingFinalizers(); // 가비지 컬렉션이 객체를 해제할때까기 대기 상태유지

가비지 컬렉션이 일어난다는건 객체가 해제된다는 말인데
객체가 해제 될때 소멸자를 호출하게 된다.
제대로 실행이 되는지 알아보기 위해서 이 소멸자에 어떤문자열을 콘솔에 뿌리는
코드를 작성해본다.

public class SourceFile{
    ~SourceFile(){
         Console.WriteLint("Destructor end")
    }
}

SourceFile file = new SourceFile();
file = null;

System.GC.Collect();
System.GC.WaitForPendingFinalizers();

====== print =======
Destructor end

반응형
Posted by 녹두장군1
,