首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从C++异步(最好是并行)获得Windows上的文件图标?

如何从C++异步(最好是并行)获得Windows上的文件图标?
EN

Stack Overflow用户
提问于 2011-01-04 16:14:39
回答 2查看 198关注 0票数 0

用于SHGetFileInfo的MSDN文档非常正确地说:

您应该从后台线程调用此函数。如果不这样做,可能导致UI停止响应。

因此,我试图找出一个很好的方法来完成这个任务,我有一个很大的列表(80+)要做,并且希望并行化底层的I/O -我可以使用线程池,但我不是一个专业的Windows程序员,所以我想知道是否有更好的技术。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-04 16:37:30

创建要处理的文件名队列(链接列表就足够了;请考虑STL的std:: list )。为该队列创建一个锁(关键部分可以这样做)。产生一串线程(2-4).每个线程将获取锁,从队列中获取头部,释放锁并在循环中检索图标。如果队列中没有更多的项,则线程退出。就像这样。

票数 1
EN

Stack Overflow用户

发布于 2011-01-04 16:43:50

进行并行I/O调用可能不会给您带来任何速度(可能只是开销)。您可以尝试使用GBL库,并查看线程是否对您有帮助。编写处理程序函数以响应事件。然后,您可以轻松地在AsyncHandler之间切换,它使用线程池和Handler,这是同步的,以查看是否可以实现任何加速。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4595796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档