일회용 객체의 스레드 안전 캐시를 만들어야합니다.일회용 객체의 스레드 안전 캐시 만들기
- 내가 캐시 할 것인지, 일부 데이터 클래스가, 전 MyData로
- 내가 MyData로
- 에 대한 몇 가지 콜렉션 (예를 들어 ConcurrentDictionary)을 만드는거야 내가 방법이 그 새로운 생성 : 나는 그것을 참조하는 방법 일부 키를 사용하여 MyData 인스턴스
- 일부 키에 대해 MyData를 가져와야 할 때 저장소에 있는지 확인한 다음 컬렉션에서 사용하고 다른 인스턴스를 만들고 컬렉션에 넣습니다.
- 캐시를 무효화해야하는 경우 몇 가지 이벤트가 있습니다. 이 이벤트에서 스토리지를 지 웁니다.
일부 MyData는 일회용입니다. 언제 Dispose 메서드를 호출해야하는지 모르겠습니다. 일부 스레드가 MyData의이 인스턴스를 잠시 사용할 수 있기 때문에 clear-cache 이벤트에서 콜렉션을 지울 때 Dispose 메서드를 호출 할 수 없습니다.
어떤 패턴을 선택해야합니까?
개체가 많은 소비자들 사이에서 공유되는 경우 정확하게 누가 'Dispose'를 호출하는지는 중요하지 않습니다. 모든 소비자는 문제없이 일하기 위해 협력해야합니다.아마도'ObjectDisposedException'을 잡을 준비가되어 있어야합니다. – Jon
같은 유형의 개체입니까? –
@ LasseV.Karlsen 어떤 종류의 디 센스가 동일한 유형으로 만들어지면 모두 IDissposable입니까? – Liran