我在具有2.1 GHZ intel cpu的32位Windows 7 pro便携式计算机上创建了一个32位excel 2007 vba(6.5)程序。该程序使用两个Windows API,它们声明如下:
Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)
Public Declare Function GetTickCount Lib "kernel32" () As Long
该程序实质上是在While循环中运行For循环,并使用两个Windows API在每个循环后的150 ms暂停。
该程序在32位笔记本电脑上完美运行,没有任何问题。但是,当我尝试在装有Windows10 Pro 64位操作系统和Xeon 4核心,2,9GHz,3,8GHz Turbo cpu和MUCH FASTER笔记本电脑的Dell笔记本电脑上运行该程序时,该程序在一开始的启动速度较慢,然后加速到正常,然后在最后再次减速。
有人知道导致此问题的原因吗? 为什么会出现此问题以及如何解决。我能想到的唯一原因是由于OS中32/64位的差异,还是API声明造成的。
Sleep API用于在每个While循环之后暂停20毫秒,而GetTickCount API用于在每个For循环之后暂停150毫秒。