![]() |
#2
csyx7 天前 09:20
|
结果今天运行一个耗时的脚本,scan...endscan一旦开始循环,就无法中途通过按键退出了;要么静待循环结束,要么强制杀死VFP进程,丢失循环更新的数据,甚至有可能损坏表。
请教DeepSeek,说是“SCAN...ENDSCAN 是原子操作,默认不响应外部事件,其内部封装了记录指针移动,循环期间阻塞外部事件(包括按键和窗口关闭)。必须依赖外部 API 强制干预(如 GetAsyncKeyState)才能通过按键退出循环。”
而“do while...enddo通过简单添加 DOEVENTS 即可支持事件响应,是更优选的循环结构。”
试了一下,果真如此!TNND,微软欺骗了我的感情十多年哪,嘿嘿。
