2011-10-12 51 views

回答

1

確保置於緩存中的對象是線程安全的是您自己的責任。

+1

沒錯。任何一個對象都應該是線程安全的,或者應該將它們全部替換爲新實例(將它們作爲不可變對象進行威脅)。最好的辦法是*不*更新緩存中的部分對象。只需使用不可變對象的只讀列表。 – Steven

+0

爲什麼downvote? –

0

如果不同的線程中要使用,並同時修改緩存的對象,那麼你將需要一些應用級協議。這可以簡單如lock(cachedObject) {....}

如果您可以確定緩存中的內容一次只能由單個線程訪問,或者它不能被修改(因爲它是不可變的),那麼您不需要任何東西進一步。

HttpContext.Current.Cache是什麼意思是線程安全的是多線程可以同時獲取和放入東西。所以如果你想在多個鍵之間進行一些協調,那麼你將需要一些更高級別的鎖定。

相關問題