2011-01-11 5 views
0

캐시에 저장된 객체에 효과적으로 동기화 할 수 있습니까?캐시에있는 객체의 Synclock

처럼 :

SyncLock System.Web.HttpContext.Current.Cache("Some Object") 
    'do some stuff that is threadsafe on this cached object' 
End SyncLock 

이 그 캐시 된 개체를 수정에서 다른 스레드를 그만?

답변

1

표준 캐시의 경우 예. 그러나 캐시의 객체를 대체하는 다른 스레드는 멈추지 않습니다.이를 위해 별도의 동기화 객체를 사용해야합니다. 분산 캐시 (예 : Velocity)를 사용하는 경우 반드시 신뢰할 수있는 것은 아닙니다.

+0

So ... System.Web.HttpContext.Current.Cache ("Some Object")에서 Synclocking하고 dim =을 System.Web.HttpContext.Current.Cache ("Some Object")로 호출하면 실제로있을 수 있습니다. 두 개의 서로 다른 객체를 참조하고 있습니까? – Peter

+0

예, 다른 스레드가 System.Web.HttpContext.Current.Cache ("Some Object") = newObject를 두 문 사이에 설정하면 이전 개체를 잠 갔지만 새 개체를 검색하고 작업합니다. – MarkXA

관련 문제