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.