개발 마무리는 무엇입니까? -techopedia에서 정의

마무리는 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-Finalize는 무엇을 의미합니까?

Finalize는 관리되지 않는 리소스를 비우고 가비지 수집 (GC) 전에 정리 작업을 수행하는 데 필요한 코드가 포함 된 개체 메서드입니다.


finalize 메서드는 .NET에서 관리하지 않는 리소스를 정리하는 데 사용됩니다. .NET 프레임 워크는 메모리 관리 작업을 암시 적으로 수행하여 관리되는 리소스를 해제하도록 설계되었지만 파일 핸들 및 데이터베이스 연결과 같은 관리되지 않는 응용 프로그램 리소스는 명시 적으로 해제해야합니다.

Techopedia는 Finalize를 설명합니다

finalize는 GC에 의해 암시 적으로 호출되도록 설계되었지만 dispose 메소드는 사용자 코드에 의해 명시 적으로 호출되어 리소스를 해제 할 수 있습니다.


Finalize는 기존 C ++ 소멸자와 비슷하지만 각각 개체 리소스를 해제하는 역할을합니다. C ++ 소멸자는 객체가 범위를 벗어나면 즉시 실행되는 반면 finalize는 GC에서 객체를 정리하는 동안 호출됩니다. C #에서는 finalize를 직접 호출하거나 재정의 할 수 없습니다. 소멸자가 선언되면 프로그램이 컴파일 될 때 finalize 메소드로 변환됩니다.


마무리하는 동안 메모리 할당 또는 가상 메서드 호출을 피해야합니다. 종료 범위는 동일한 클래스 또는 파생 클래스 내에서만 액세스 할 수 있도록 보호되어야합니다. Finalize는 다른 개체를 참조해서는 안됩니다. C #에서 기본 클래스 이외의 개체에서 직접 finalize를 호출하는 것은 잘못된 작업입니다. 호출 스레드를 차단할 수있는 호출이 없으면 종료 코드가 최소화되어야합니다. finalize는 전용 스레드에 의해 호출되므로 해당 코드는 스레드 로컬 저장소 나 스레드 선호도가 필요한 기술을 사용해서는 안됩니다.


결정적이지 않고 GC 성능에 미치는 영향으로 인해 관리되지 않는 메모리 또는 리소스를 해제하기위한 대체 메커니즘으로 finalize를 사용하는 것이 필수적입니다.

이 정의는 .NET의 맥락에서 작성되었습니다.
마무리는 무엇입니까? -techopedia에서 정의