日期:2014-05-20  浏览次数:20831 次

◆◇◆ 有没有什么办法可以建立一个系统级的全局变量? ◆◇◆
就是当我运行程序时判断某个变量是否为空,如果为空则赋值,如果不为空则直接调用。

当该程序关闭时该变量也不会消毁,等到下次再次执行该程序时可以继续使用。

------解决方案--------------------
可以用静态变量来实现。不过当程序关闭后肯定会销毁的。
------解决方案--------------------
可以考虑把该变量写到注册表中。如果有数据库,也可写到数据库中保存。每次程序启动就读取。
------解决方案--------------------
如果不想保存到磁盘上,同时程序退出变量还在,根本做不到。
只要仔细的想想就知道不行,程序只能访问此线程所占用的内存地址,所以定义的不管是什么类型的变量就必须在此内存地址之中,而当你程序退出时,此内存地址会被摧毁或者被GC接管,下次你启动程序,不能访问你前一次程序的内存地址。
------解决方案--------------------
“当该程序关闭时该变量也不会消毁,等到下次再次执行该程序时可以继续使用。;”

没有可能实现这种需求,除非你序列化或保存到本地文件......
------解决方案--------------------
别的程序是希望你调用完成以后退出好取返回结果,还是异步的调用然后用消息通知?

不管用什么方法,DLL调用的时候开销要比EXE小很多,这样的程序恐怕用不着这样设计。要看每次都去取配置文件、参数等等看看是不是时间上满足你的要求,如果满足了就不用考虑驻留内存的问题了。这样做就有点过度设计了。