zoukankan      html  css  js  c++  java
  • 缓存

     public abstract class SessionHandler<T> : IDisposable
            where T : new()
        {
            /// <summary>
            /// 缓存更新线程
            /// </summary>
            Thread SessionThread;
    
            /// <summary>
            /// 最后更新时间
            /// </summary>
            public DateTime LastModified { get; protected set; }
    
            /// <summary>
            /// 同步锁
            /// </summary>
            protected object Lock = new object();
    
            /// <summary>
            /// 缓存集合
            /// </summary>
            protected List<T> _session;
    
            /// <summary>
            /// 只读集合
            /// </summary>
            public IQueryable<T> Session
            {
                get
                {
                    if (_session == null) return null;
                    lock (Lock)
                    {
                        return _session.AsQueryable<T>();
                    }
                }
            }
    
            /// <summary>
            /// 数据库数据
            /// </summary>
            public abstract IQueryable<T> Database { get; }
    
            /// <summary>
            /// 加载缓存
            /// </summary>
            protected abstract void LoadSession();
    
            /// <summary>
            /// 线程开始时间
            /// </summary>
            /// <param name="sleep">休眠时间</param>
            protected void StartSessionThread(int sleep)
            {
                SessionThread = new Thread(() =>
                {
                    while (true)
                    {
                        Thread.Sleep(sleep);
                        LoadSession();
                    }
                });
                SessionThread.Start();
            }
    
            /// <summary>
            /// 初始化
            /// </summary>
            public virtual void Init()
            {
                LastModified = DateTime.MaxValue;
                LoadSession();
                StartSessionThread(1800000);
            }
    
            private bool Disposed;
    
            public void Dispose()
            {
                if (SessionThread != null)
                {
                    SessionThread.Abort();
                }
                GC.SuppressFinalize(this);
            }
        }
    

      

  • 相关阅读:
    将浏览器变成文本编辑器
    《奋斗吧!菜鸟》 第七次作业:团队项目设计完善&编码
    java第二周作业
    java第一周作业
    java第三周作业
    java暑期作业
    java第四周学习总结
    正则表达式常用的js验证
    学习网址
    jquery 操作下拉框
  • 原文地址:https://www.cnblogs.com/liyangLife/p/5417413.html
Copyright © 2011-2022 走看看