none
如何定时去取数据? RRS feed

  • 问题

  • 有一组数据不会经常更新,于是我想把这些数据缓存起来,想每天定时更新一次,以提高程序的性能.于是我想通过静态变量来实现,不知道怎么样具体实现?有什么好的方法?最好能给个例子,谢谢.(注意:项目不是winform的,是web的)


    Leo
    2010年2月11日 8:55

答案

  • 你好,你的意思我明白了
    你可以是用缓存块,或者用类似与MemeberCache这样的服务来实现,
    我写过一个关于缓存块的博客,希望对你有用
    http://www.cnblogs.com/TerryFeng/archive/2009/10/03/1577826.html



    微软(黑龙江).Net俱乐部
    我们要把爱心传递给更多需要帮助的人。
    http://terryfeng.cnblogs.com
    http://t.sina.com.cn/terryfeng
    http://www.terryfeng.com
    2010年2月11日 14:17
    版主
  • 既然你提到 静态变量,那么我就从这个角度给你写一段,你自己研究吧 。。

    public class test
    {
         private static test obj = null ;
         public static test Instantiate
        {
            get
              {
                   if(obj == nul)
                         obj = new test();
                     return obj;
              }
        }

         public DataSet youdata;
    }

    // *************使用***************
    //给你的数据赋值
    test.Instantiate.youdata = ..... 你的数据;

    //访问你的数据
    test.Instantiate.youdata.Tables["table name"] ......


    大概就是这样吧 。。。 当你第一次调用test.Instantiate时刻, 对象被初始化,并"永久"存在于内存中。。。直到IIS的应用程序线程池回收或挂掉为止 。。。
    注意:由于对象不会被回收,要仔细使用这个对象,当心内存暴涨挂掉服务器,还要注意多线程数据同步问题  。。。 此方法属于叫做“单件模式”的设计模式,更多细节,自己搜。。。

    祝你成功。


    2010年2月13日 6:59

全部回复

  • 你好,你的意思我明白了
    你可以是用缓存块,或者用类似与MemeberCache这样的服务来实现,
    我写过一个关于缓存块的博客,希望对你有用
    http://www.cnblogs.com/TerryFeng/archive/2009/10/03/1577826.html



    微软(黑龙江).Net俱乐部
    我们要把爱心传递给更多需要帮助的人。
    http://terryfeng.cnblogs.com
    http://t.sina.com.cn/terryfeng
    http://www.terryfeng.com
    2010年2月11日 14:17
    版主
  • 既然你提到 静态变量,那么我就从这个角度给你写一段,你自己研究吧 。。

    public class test
    {
         private static test obj = null ;
         public static test Instantiate
        {
            get
              {
                   if(obj == nul)
                         obj = new test();
                     return obj;
              }
        }

         public DataSet youdata;
    }

    // *************使用***************
    //给你的数据赋值
    test.Instantiate.youdata = ..... 你的数据;

    //访问你的数据
    test.Instantiate.youdata.Tables["table name"] ......


    大概就是这样吧 。。。 当你第一次调用test.Instantiate时刻, 对象被初始化,并"永久"存在于内存中。。。直到IIS的应用程序线程池回收或挂掉为止 。。。
    注意:由于对象不会被回收,要仔细使用这个对象,当心内存暴涨挂掉服务器,还要注意多线程数据同步问题  。。。 此方法属于叫做“单件模式”的设计模式,更多细节,自己搜。。。

    祝你成功。


    2010年2月13日 6:59