现在我有控制台应用程序 A,A 有配置文件 B,B 中以 XML 格式保存了三千多行数据。现在我通过存储过程调用 A,有可能每秒钟几十次。A 执行某些操作后自动退出。由于 B 文件比较大且很少改变。所以我想将当 A 第一次运行的时候读 B,并将数据保存在内存中,以后 A 再运行时先判断内存中保存的数据是否为空,如果为空则填充否则读取。

解决方案 »

  1.   

    To Ivony():就是说我希望某些变量当应用程序关闭时不被回收,当应用程序再次运行时可以继续使用。
      

  2.   

    不要让进程结束
    如果A是有参数的,就想办法保存这些参数,然后A获取这些参数
    我想至少比反复读取B好
      

  3.   

    静态字段就可以了
    static string
      

  4.   

    个人认为不能实现...像你这种情况我觉得最好把数据解析后存到数据库中,这样应用程序每次启动就直接读数据库就行了...这样比你每次启动再读xml,再分析xml效率要高点吧...
      

  5.   

    楼主的意思应该是应用程序关闭了,然后等下次再启动程序时,直接用上一次的数据,而不是再读xml文件了...
      

  6.   

    liujia_0421(SnowLover) 说的对。我就是那个意思。
      

  7.   

    可以考虑用webservice,Application_start时将xml数据读入一个静态对象中,只要你的IIS不重新启动,对象就一直存在...你的控制台程序可以引用这个webservice,然后通过webservice发布的方法来得到对象...不过似乎这样就麻烦多了...
      

  8.   

    //不要让进程结束
    同意,让他Sleep好了
      

  9.   

    对于 static变量个人 认为 是 一种灾难...楼主可以用Application对象来保存...
      

  10.   

    各位,请注意:我的应用程序不是WEB应用程序,而是控制台应用程序。
      

  11.   

    做个Windows服务来帮你存在内存里……
      

  12.   

    TO:我的应用程序不是WEB应用程序,而是控制台应用程序。一个方法就是你的控制台程序不关闭...另外一个方法就是找一个不关闭的应用程序或者说进程,比如WindowService或者Webservice...我说到用Webservice并不是我把你的程序当作web程序了,我的意思是说可以另写一个webservice项目,然后在你的控制台程序中引用这个webservice,通过webservice来达到保存数据的作用..(当然如果IIS重新启动了,数据也就没有了,得重新加载)...不知道还有没有更好的方法....仅供参考...