MemoryCache.Dispose 메서드

정의

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

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

구현

설명

MemoryCache 인스턴스는 이벤트에 바인딩됩니다 AppDomainUnloaded . 그러나 애플리케이션 도메인을 종료하는 동안 메모리 기반 캐시가 명시적으로 삭제되지 않은 경우 캐시 인스턴스는 자동으로 메서드를 Dispose 호출합니다.

삭제된 캐시 인스턴스는 다음 단계를 사용하여 종료됩니다.

  1. 캐시의 상태는 캐시가 삭제되었음을 나타내도록 설정됩니다. 캐시 항목을 추가, 제거 또는 검색하는 메서드와 같이 캐시의 상태를 변경하는 공용 캐싱 메서드를 호출하려고 하면 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 캐시가 Set 삭제된 후 메서드를 호출하면 no-op 오류가 발생합니다. 캐시에서 항목을 검색하려고 하면 메서드가 Get 항상 반환 null됩니다.

  2. 성능 카운터 정보는 더 이상 현재 캐시 인스턴스에서 발생하지 않습니다.

  3. 현재 캐시 인스턴스에서 보유한 캐시된 개체에 대한 모든 참조가 해제됩니다.

  4. 현재 캐시의 항목을 모니터링하는 모든 CacheEntryChangeMonitor 인스턴스에 알림이 표시됩니다.

  5. 해당 모니터에 대한 변경 알림을 제공하는 콜백 개체가 호출됩니다.

  6. 캐시의 항목에 등록된 모든 CacheItemRemovedCallback 인스턴스가 호출됩니다. 콜백에 전달되는 제거 이유는 다음과 같습니다 CacheSpecificEviction.

적용 대상