- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
private static Dictionary<object, object> _cache = new Dictionary<object, object>();
.........
if( _cache.ContainsKey( key ) )
{
lock( syncRoot )
{
_cache[key] = value;
return;
}
}
_cache.Add( key, value );
Ну и помимо неатомарности еще и производительность такого однопоточного кеша оставляет желать лучшего.
А ведь даже в шарпе (в котором перечислений не было до 3-ей версии, а аналога великолепной ConcurentHashMap до 4-ой ) таки удосужились написать ConcurrentDictionary.
Потому тут джва варианта:
- типичный нубский говнокеш
- код времен .NET 3.5 или раньше