One small problem is that depending on how your threading and cache works it might be possible for the cache to be cleared after the contains call but before the get.