내 ASP.Net 뒤에 스레드가 있습니다. 이 스레드에서이 같은 캐시에 데이터를 입력 :다른 스레드에서 HttpRuntime.Cache에 액세스
다른 스레드 (웹 페이지) 내가 처음과 같이, 캐시에서 개체를 얻을려고 다음 캐시에 데이터가 포함되어 있는지 확인하고 온HttpRuntime.Cache.Insert("test", "test", null, DateTime.Today.AddHours(6), Cache.NoSlidingExpiration);
:
if (HttpRuntime.Cache.Count > 0) {
var test = (string)HttpRuntime.Cache["test"];
}
편집 : 캐시가 비어 갈 것이다 var test = (string)HttpRuntime.Cache["test"];
을 할 노력하고있어 매번 (또는 개체를 삭제합니다 테스트하지 않은 여러 캐시에서 개체)를 더한 var test
도 null입니다. HttpRuntime.Cache.Count 0
오보다 큰 그것은 예외 또는 아무것도 제공하지 않습니다 때 당연히 당신의 코드에서 잠재적 인 일관성이있다
당신이 명확하게 수를 당신은 if 문에서'Cache.Count> 0'을 말하고 있지만 var test = (string) 중에는 HttpRuntime.Cache [ "test"]; 그것은 비 었습니까? –
'var test = (string) HttpRuntime.Cache [ "test"];'캐시를 비울 때 (또는 객체를 삭제하고 테스트하지 않은 채로)'var test '도 null입니다. 'HttpRuntime.Cache.Count'가 0보다 큰 경우 이것은 당연합니다. –