2011-10-12 143 views

回答

1

确保置于缓存中的对象是线程安全的是您自己的责任。

+1

没错。任何一个对象都应该是线程安全的,或者应该将它们全部替换为新实例(将它们作为不可变对象进行威胁)。最好的办法是*不*更新缓存中的部分对象。只需使用不可变对象的只读列表。 – Steven

+0

为什么downvote? –

0

如果不同的线程中要使用,并同时修改缓存的对象,那么你将需要一些应用级协议。这可以简单如lock(cachedObject) {....}

如果您可以确定缓存中的内容一次只能由单个线程访问,或者它不能被修改(因为它是不可变的),那么您不需要任何东西进一步。

HttpContext.Current.Cache是什么意思是线程安全的是多线程可以同时获取和放入东西。所以如果你想在多个键之间进行一些协调,那么你将需要一些更高级别的锁定。

相关问题