using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Primitives;
using System;
using System.Threading;
namespace CacheMemoryDemo
{
class Program
{
static void Main(string[] args)
{
MemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions()
{
});
CancellationTokenSource tokenSource = new CancellationTokenSource();
var cacheOptions = new MemoryCacheEntryOptions()
{
AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(10)
};
cacheOptions.RegisterPostEvictionCallback((key, value, reason, obj) =>
{
Console.WriteLine(reason);
});
cacheOptions.AddExpirationToken(new CancellationChangeToken(tokenSource.Token));
memoryCache.Set("key", "value", cacheOptions);
tokenSource.CancelAfter(1000 * 2);
Console.Read();
Console.Read();
}
}
}