using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Primitives;
using System;
using System.Threading;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
MemoryCache cache = new MemoryCache(new MemoryCacheOptions()
{
});
CancellationTokenSource tokenSource = new CancellationTokenSource();
var option = new MemoryCacheEntryOptions()
{
AbsoluteExpiration = DateTime.Now.AddSeconds(20)
};
option.RegisterPostEvictionCallback((key, value, reason, obj) =>
{
Console.WriteLine(reason);
});
option.AddExpirationToken(new CancellationChangeToken(tokenSource.Token));
cache.Set("key", "value", option);
System.Threading.Thread.Sleep(2000);
tokenSource.CancelAfter(2000);
Console.Read();
}
}
}