编程论坛
注册
登录
编程论坛
→
VFP论坛
关于命令执行顺序的问题
大树临风
发布于 2024-03-12 09:46, 440 次点击
发现有时候,在前一条命令未执行完成的情况下,下一条命令被执行,如何避免这种情况
[此贴子已经被作者于2024-3-12 09:48编辑过]
10 回复
#2
sdta
2024-03-12 10:16
inkry(N) && 设置等待N秒
#3
sych
2024-03-12 11:28
在vfp里是不可能的,检验的方法是:
你可以建10个timer,每个都循环向数据库插入数据,其实这10个timer是顺序执行的,一个timer没执行完另一个timer是不会执行的
[此贴子已经被作者于2024-3-12 11:30编辑过]
#4
sych
2024-03-12 11:35
比如
**先建立数据库
**crea tabl tmp (c (20),i)
在每个timer里输入
for i=1 to 100
inse into tmp values(this.name,i)
next
最后执行完后你检查发现这100条记录是连续的
#5
大树临风
2024-03-12 12:36
回复 2楼 sdta
inkey秒数不好设置,多了卡顿明显,少了又担心不够,有更好的方法吗
#6
大树临风
2024-03-12 12:38
回复 3楼 sych
一般情况不会,但是有的命令比较耗时,比如调用外部程序、上传下载文件等,系统好像就提前执行后面的命令了
#7
sych
2024-03-12 12:50
这就要具体情况具体分析了,没有万全之策
#8
hu9jj
2024-03-29 07:12
我们都知道,VFP是单线程操作的,因此不可能同时“执行”两条命令。楼主出现这种现象很可能是VFP执行与操作系统交互的命令,例如VFP要将数据写入文件中,在将写文件的命令及数据缓冲区句柄交给操作系统后,VFP认为这条命令已经执行完了,继续执行下一条命令,而操作系统却仍在写数据的过程中。这种情况的出现应该是极为罕见的,所以处理起来也必须有针对性。
#9
laowan001
2024-03-29 08:03
8楼分析的有道理
对于VFP而言,交给操作系统了就算是完成任务了,因为后续VFP也管不了了,所以就执行下一条了
#10
星光悠蓝
2024-03-29 11:02
不同电脑运行速度不一样,inkey()控制不太理想
#11
shizi0
2024-04-02 18:02
AutoYield不行吗?
1