public class CacheThread<T> where T : new()
{
/// <summary>
/// 默认2分半钟
/// </summary>
private double _defaultTime = 1000 * 30 * 5;
/// <summary>
/// 默认启用自动清理数据
/// </summary>
private bool _enableDataClean = true;
/// <summary>
/// 是否启用数据过期清理(默认清理)
/// </summary>
public bool EnableDataClean { get { return _enableDataClean; } set { _enableDataClean = value; } }
private System.Timers.Timer _timer;
private T _obj;
private static object _lockObj = new object();
public T DictionaryData
{
get
{
_timer.Interval = _defaultTime;
if (_obj == null)
_obj = new T();
return _obj;
}
set
{
lock (_lockObj)
{
if (value == null)
_obj = new T();
else
_obj = value;
if (this.EnableDataClean)
_timer.Start();
}
}
}
public CacheThread()
{
_obj = new T();
if (this.EnableDataClean)
{
_timer = new System.Timers.Timer(_defaultTime);
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
}
}
void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
this.ClearCache();
}
public void ClearCache()
{
this._obj = default(T);
System.GC.Collect();
_timer.Stop();
}
}
C#简单定时缓存类
猜你喜欢
转载自blog.csdn.net/lwbjyl/article/details/83583925
今日推荐
周排行