我的
CComboBox
上有一个 CDialog
,其中包含文件名列表。
文件所在的文件夹有时会更新。这意味着:
处理这个问题的最佳方法是什么?
OnKickIdle
。OnDropDown
事件?感谢指导。我担心对应用程序的性能影响。
嗯,每种解决方案都有其优点和缺点。我的想法:
我不会使用
OnKickIdle()
,因为它相当“浪费”;这是一个真正“一直”触发的事件,即使是由于鼠标移动、悬停、按键等。在 Beep(1000,30)
中添加一个 OnKickIdle()
命令来检查它被调用了多少次,并问问自己是否希望您的应用程序经常扫描目录。即使下拉列表展开,您也可能会触发更新。您可以改用一些计时器,但这只是古老的“轮询”技术。
扫描
OnDropDown()
中的文件夹有一个明显的缺点,即在用户期望 UI 响应的时刻执行相对昂贵的操作。但是,如果文件夹驻留在同一台计算机上的 SSD 中并且文件数量很少,则响应时间绝对可以接受。如果文件数量很大和/或文件夹位于网络卷上,情况可能会有所不同。
如果您愿意为此付出更多的努力,您可以考虑目录更改通知。它可以在单独的线程中实现,这将使用户感觉不到更新过程。
你好, 您可以考虑在文件系统上挂接, 不是组合框。 也许操作也需要同步。 我通过互联网发现了一个功能: API