ChangeMonitor.Dispose 메서드

정의

ChangeMonitor 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

오버로드

Dispose()

ChangeMonitor 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

Dispose(Boolean)

모든 관리되는 리소스 및 관리되지 않는 리소스와 ChangeMonitor 인스턴스에 대한 모든 참조를 해제합니다. 이 오버로드는 파생된 변경 모니터 클래스에 의해 구현되어야 합니다.

설명

합니다 Dispose 메서드 릴리스를 사용 하는 ChangeMonitor 인스턴스와 관련 된 리소스입니다. 공용 Dispose (예: 초기화)에서 파생 된 변경 모니터 클래스의 키 수명 주기 이벤트를 사용 하 여 삭제 프로세스를 조정 하 고 릴리스를 메서드가 호출 되는 ChangeMonitor 인스턴스가 가비지 수집 될 수 있도록 인스턴스입니다. Dispose 메서드는 관리 및 관리 되지 않는 리소스를 삭제 하기 위해 파생 된 변경 모니터 클래스에서 구현 됩니다.

Dispose()

Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs

ChangeMonitor 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

구현

예외

기본 Dispose() 메서드를 호출한 파생된 변경 모니터 클래스에서 초기화가 완료되지 않았습니다.

설명

합니다 Dispose 메서드를 호출 하는 Dispose 메서드의 파생된 클래스 한 번만에 처음으로 호출 됩니다. 에 대 한 후속 호출을 Dispose 메서드 영향을 주지 않습니다. 메서드를 호출한 후 합니다 IsDisposed 속성이 true합니다.

합니다 Dispose 오버 로드의 dispose를 호출 해야 합니다는 ChangeMonitor 인스턴스. 다음은 dispose 메서드를 호출 하는 것에 대 한 규칙:

  • 삭제 해야 하는 호출자의 항목은 캐시에 삽입 하기 전에 ChangeMonitor 인스턴스.

  • 한 번 캐시 항목 및 ChangeMonitor 연관 된 인스턴스를 캐시에 있는지 확인 해야 하는 캐시 구현자에 전달 됩니다 Dispose 삽입이 실패 하는 경우에 호출 됩니다.

  • 항목 및 연결 된 후 ChangeMonitor 인스턴스 캐시에 전달 된, 때문에 호출자에 게가 종속성을 삭제 해야 경우는 Dispose 메서드가 호출 되 면 호출의 종속성이 변경 된 것 처럼 처리 됩니다. 결과적으로 OnChanged 메서드가 자동으로 실행 됩니다.

  • 이러한 규칙 고려는 Dispose 다음 방법 중 하나로 메서드를 호출 해야 합니다.

    • 사용자를 호출 해야 합니다는 Dispose 메서드 오버 로드는 하지 않기로 결정 파생 된 변경 모니터 인스턴스 캐시에 삽입 합니다.

    • 캐시 구현이 호출을 담당 합니다 Dispose 구현을 변경 모니터 인스턴스는 개체 캐시에 삽입 하려고 시도 하지만 삽입이 실패 하는 경우 오버 로드 합니다. 삽입 시도가 예외를 발생 시키는 캐시 구현이 관련 된 모든 종속성을 삭제 해야 합니다.

    • 캐시 엔트리가 제거 된 경우 캐시 구현이 종속성도 삭제 해야 합니다.

내부 구현을 OnChanged 메서드를 자동으로 호출 합니다 Dispose 메서드는 콜백을 호출 후이 통해 등록 된는 NotifyOnChanged 메서드.

참고

경우에 이벤트 발생 하는 동안이 자동 dispose 발생의 초기화를 ChangeMonitor 인스턴스가 이전에 완료 되었습니다.

파생 된 변경 모니터의 생성자가 호출 하는 경우는 InitializationComplete 메서드를 변경 모니터의 상태가 이미 변경 된 경우 (즉, 상태 모니터링 되는 이미 변경 생성자가 여전히 활성화 하는 경우) 다음 InitializationComplete 메서드는 변경 모니터를 자동으로 삭제 합니다.

참고

사용자를 호출 하지 않아야 합니다 Dispose 메서드. 그러나 메서드를 호출에서 사용자를 막을 수 없습니다. 따라서, 그럴 경우는 OnChanged 메서드가 실행 됩니다. 이 경우 캐시 엔트리는 종속성이 변경 된 것 처럼 알림이 전송 됩니다.

파생된 클래스를 재정의 하지 못하도록 Dispose 메서드를 메서드는 명시적 인터페이스 구현이 아닙니다.

추가 정보

적용 대상

Dispose(Boolean)

Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs
Source:
ChangeMonitor.cs

모든 관리되는 리소스 및 관리되지 않는 리소스와 ChangeMonitor 인스턴스에 대한 모든 참조를 해제합니다. 이 오버로드는 파생된 변경 모니터 클래스에 의해 구현되어야 합니다.

protected:
 abstract void Dispose(bool disposing);
protected abstract void Dispose (bool disposing);
abstract member Dispose : bool -> unit
Protected MustOverride Sub Dispose (disposing As Boolean)

매개 변수

disposing
Boolean

관리되는 리소스 및 관리되지 않는 리소스와 ChangeMonitor 인스턴스에 대한 모든 참조를 해제하려면 true이고, 관리되지 않는 리소스만 해제하려면 false입니다. false가 전달되면 Dispose(Boolean) 메서드가 finalizer 스레드에 의해 호출되고, 모든 외부 관리 참조가 이미 가비지 수집되었기 때문에 더 이상 유효하지 않습니다.

설명

경우 값 disposing 값은 true, 모든 관리 및 관리 되지 않는 리소스 삭제 되 고 파생 된 변경 모니터 인스턴스의 가비지 수집 될 수 있도록이 개체에 대 한 참조가 해제 됩니다. 반드시 기본 Dispose 메서드는 구현 된 호출 Dispose 메서드 한 번만 합니다.

구현자 참고

변경 모니터를 구현 해야 합니다는 Dispose(Boolean) 오버 로드 모두 해제를 관리 하 고 관리 되지 않는 리소스 때 변수의 disposingtrue합니다. Dispose(Boolean) 포함 된 메서드 오버 로드를 disposing 의 값 true 라고 한 번만 즉, 인스턴스가 처음으로 삭제 될 때입니다. 변경 모니터를 호출 하지 않아야 합니다 Dispose(Boolean) 오버 로드를 직접. 파생된 된 변경 모니터 공용 매개 변수 없이 호출할 수 있습니다 Dispose() 메서드를 기본 ChangeMonitor 클래스입니다.

또는 변경 모니터 종료자 메서드를 구현할 수 있습니다. 이런 경우 종료자를 호출할 수 있습니다는 Dispose(Boolean) 메서드 전달를 disposing 의 값 false합니다. 그러나 일반적으로 필요한 아닙니다. 종속성이 변경에 대 한 모니터링은 일반적으로 변경 모니터 인스턴스에 대 한 참조를 유지 하는 서비스에서 수행 됩니다. 참조가는 인스턴스가 가비지 수집 되지 않습니다 하 고 불필요 한 종료자 메서드를 사용 합니다. 종속성이 변경 되 면 메모리 누수를 방지 하는 OnChanged(Object) 메서드 (하지 않는 한 초기화가 완료 되지)는 변경 모니터 인스턴스를 삭제 합니다.

적용 대상