We revisted our Generic MemoryCache for VB.Net to with improvements for both performance and reuse.
Using MemoryCache in VB.Net
In this example performance is increased by putting the object into cache (which happens to be a row of data from a database), if that data is not accessed within a sliding expiration time (in this example 1 minute) it will be removed from the memory cache and if accessed later will re fetch from the database and once again place it in the cache.