gpt4 book ai didi

c++ - 如何在不占用系统资源的情况下拖放大量文件?

转载 作者:可可西里 更新时间:2023-11-01 13:26:22 29 4
gpt4 key购买 nike

我正在开发的程序的其中一个功能是能够将对象从其主窗口拖放到 Windows 资源管理器中作为文件。

为此,我们覆盖了 COleDataSource::OnRenderGlobalData(),并且当格式为 CF_HDROP 时,我们将每个对象保存为一个文件。当对象数量很少时,这很好用。

但是,由于我们现在正致力于支持企业级数量的对象,因此当用户试图将大量对象从我们的应用程序拖到 Windows 资源管理器中时,我们看到了很大的延迟,有时会导致挂起或最终崩溃.

我猜这是因为 OnRenderGlobalData() 被调用了很多次,当然,每次它都必须循环遍历被拖动的对象并保存它们作为文件。

我正在研究覆盖 OnRenderFileData() 的想法,但问题是它一次只处理一个文件。

当用户试图将大量对象拖到 Windows 资源管理器上时,有什么方法可以加快我们的应用程序,最好是将保存循环移动到一个只有在实际放置发生时才能执行一次的地方?

最佳答案

不是创建文件,而是拖动在放置时生成的虚拟数据。提供 CFSTR_FILEGROUPDESCRIPTOR 和 CFSTR_FILECONTENTS。 Here's an example .

关于c++ - 如何在不占用系统资源的情况下拖放大量文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868245/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com