yield通常用于大循环中释放控制权,让界面鼠标得到刷新避免”卡死“。
比如
uf_fill_data{
dw_1.reset()
for i = 1 to 3
yield()
.......
dw_1.insertrow(0)
next
}
如果遇到函数执行需要较长时间时,客户狂点鼠标触发执行这个函数,会出现异常。
避免的方法时放入一个flag
uf_fill_data_new{
if ib_busy then return
ib_busy = true
dw_1.reset()
for i = 1 to 3
yield()
........
dw_1.insertrow(0)
next
ib_busy = false
}
下图:正常的情况
下图:重复的情况
同时,这个新的小软件采用的是dw+json+php+apache+msssql2005+阿里ECS服务器 来做的。经过测试很稳定,用php来为dw提供数据感觉非常好。可以看我的另一篇文字介绍:http://blog.csdn.net/chengg0769/article/details/71106186