我们有一个(非常)用 VB6(15 岁?)编写的旧版应用程序。
该应用程序包含一个间隔为 300 毫秒的计时器。当计时器计时时调用的 Sub 执行一批与一些 SQL 服务器对话的代码,打印一些标签等等。
当一切正常时,这个 Sub 在 5ms 到 10ms 内执行 - 即在下一个计时器间隔发生之前 - 但它也在下一个滴答声之前浪费了 290ms。
我们需要让这个应用程序更快一点,一个选择是将间隔更改为 1ms - 在我们这样做之前,我想确认计时器是否会中止间隔(又名 - 完全忽略滴答声)如果前一个间隔仍在执行 - 或者它会开始构建对子的调用堆栈,导致一段时间后挂起?(我当然假设所有滴答声都在与 gui 相同的线程中执行 - 因此我们需要在每次滴答声后使用 DoEvents 以确保 UI 不会挂起。)
我已经尝试过对此进行调查,但要找到有关旧 VB6 计时器的可靠信息证明是很棘手的。
我们确实安排了这个计划,以便使用线程和后台工作线程在 .net 中重新编写——这只是我们正在研究的一个短期修复。