MemoryCache.Add와 MemoryCache.Set의 차이점은 무엇입니까?


104

MSDN 문서를 읽었 지만 실제로 이해하지 못했습니다.

의 동작 Set이 "기존을 대체하거나 추가"(원자 적으로) 하는 것이라고 생각합니다 .

그 맞습니까?

답변:


173

Addfalse해당 키에 대한 값이 이미 있으면 아무 작업도 수행하지 않습니다 (을 반환 ). Set필요에 따라 삽입 또는 업데이트를 수행합니다.

Remove+ Add는 해당 키를 쿼리하는 다른 스레드가 실마리를 얻지 못할 때 중간에 간격을 남깁니다 Set. 반면 같은 Set동일한 갖는 최종 결과 로서 Remove+를 Add그 다른 호출자에 영향을 미칠 수 있기 때문에,기구의 차이는 중요하다.

예를 들어 추가 :

반환 값

형식 : System.Boolean 삽입에 성공하면 true이고 키와 동일한 키가있는 캐시에 항목이 이미 있으면 false입니다.


1
set항목이있는 경우 정책을 대체 합니까 ?
TS

1
나는 거의 년 된 메시지를 방금 보았고 비슷한 문제를 해결하고 있습니다. 모든 SET 오버로드에는 정책이 필요하므로 대답은 '예'입니다.
user2223142
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.