以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]当VBA因为运行时错误而强制退出时,如何恢复全局变量  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=137583)

--  作者:du_zb
--  发布时间:2016/8/5 11:28:59
--  [求助]当VBA因为运行时错误而强制退出时,如何恢复全局变量
交易程序里定义了一些全局变量来记录系统的状态,正常退出时会保存到文件中,等下次启动VBA时重新读取。但如果发生了运行时错误就不能正常保存这些变量了,请问有什么方法可以在程序非正常退出时找回这些变量的值呢?大家有什么比较好的处理机制?
--  作者:王锋
--  发布时间:2016/8/5 12:18:24
--  
最好的解决方式是写入到INI文件中,这样就不怕程序突然崩溃情况来不及写硬盘了
--  作者:du_zb
--  发布时间:2016/8/5 12:37:15
--  
这是我一开始采用的方法,但是这个方法的主要问题有:
1.读写硬盘的速度比读写内存慢太多了
2.(我怀疑)这个方法的CPU占用会比较大

由于我的交易程序是多品种(30+),多策略(3个)同时运行,所以对程序的效率要求比较高;而且其中一个策略是基于分钟级K线的,对下单速度也要求较高。所以我是希望【接收行情数据--判断是否有信号--下单】这个过程中尽量少对硬盘进行读写,其他部分的代码就没关系了。

--  作者:王锋
--  发布时间:2016/8/5 13:02:46
--  

写INI文件不会有太大的时间消耗的,操作系统也会通过缓存来处理频繁写盘的问题。

如果你有大量的全局变量需要写INI,那么你应该精简变量的数量来提高效率。