¿Cuál es la diferencia entre MemoryCache.Add y MemoryCache.Set?

Respuestas:

173

Addno hace nada (devuelve false) si ya existe un valor para esa clave. Setinserta o actualiza, según sea necesario.

Remove+ Adddejaría un espacio en el medio cuando otro hilo que consultara esa clave no obtuviera ninguna pista ( Setno lo hace; el intercambio es típicamente atómico); como tal, aunque Settiene el mismo resultado final que Remove+ Add, la diferencia del mecanismo es importante ya que podría afectar a otras personas que llaman.

Por ejemplo de Agregar :

Valor devuelto

Escriba: System.Boolean verdadero si la inserción se realizó correctamente, o falso si ya hay una entrada en la caché que tiene la misma clave que la clave.

Marc Gravell
fuente
1
¿ setReemplaza la política si el artículo existe?
TS
1
Acabo de ver su mensaje de hace casi un año, estoy trabajando en un tema similar. Todas las sobrecargas de SET requieren una política, por lo que la respuesta es sí.
user2223142