2011-01-11 67 views
0

我可以存儲在緩存中的對象上有效SYNCLOCK的對象呢?SYNCLOCK在Cache

像:

SyncLock System.Web.HttpContext.Current.Cache("Some Object") 
    'do some stuff that is threadsafe on this cached object' 
End SyncLock 

這是否會阻止修改緩存對象另一個線程?

回答

1

對於標準的高速緩存,是的。但它不會阻止另一個線程替換緩存中的對象 - 您需要爲此使用單獨的同步對象。如果您碰巧使用分佈式緩存(例如Velocity),那麼它也不一定可靠。

+0

所以...... Synclocking上System.Web.HttpContext.Current.Cache(「有些對象」),然後調用暗淡O爲對象= System.Web.HttpContext.Current.Cache(「有些對象」)實際上可能引用兩個不同的對象? – Peter 2011-01-12 14:02:24