electron [功能请求]:为Windows实现nativeImage.createThumbnailFromPath()的非阻塞版本

eblbsuwk  于 4个月前  发布在  Electron
关注(0)|答案(5)|浏览(63)

预检清单

问题描述

nativeImage.createThumbnailFromPath() 在 Windows 上以阻塞方式实现
electron/shell/common/api/electron_api_native_image_win.cc
第 25 行 in efa7013
| | v8::Localv8::Promise NativeImage::CreateThumbnailFromPath( |

建议的解决方案

此和其他所有异步函数都应以非阻塞方式实现

考虑过的替代方案

其他信息

  • 无响应*
31moq8wy

31moq8wy1#

RaisinTen,你能详细解释一下吗?
所有其他异步函数都应该以非阻塞方式实现。
你是说Windows函数吗?例如在macOS上,这是非阻塞的。

tzdcorbm

tzdcorbm2#

是的,对于nativeImage.createThumbnailFromPath()函数,我只讨论了Windows实现。然而,如果我们发现更多这样的异步函数阻塞当前线程,我们应该考虑将任务调度到其他线程。

brvekthn

brvekthn3#

你能详细解释一下吗?我打算使用这个功能。尽管它是异步的,但它会阻塞主线程吗?

bvhaajcl

bvhaajcl4#

是的,没错!当你调用这个函数时,它会同步地运行NativeImage::CreateThumbnailFromPath()内部的一系列函数调用,这会阻塞当前线程。只有Promise的解析/拒绝作为微任务发生。我们需要将这些调用分派到不同的线程(在Chromium的线程池中)以实现非阻塞。参考一下,我之前发送了#31023来创建一个现有函数的非阻塞版本!;)

dba5bblo

dba5bblo5#

非常感谢你的解释!你刚刚帮我节省了几个小时的调试时间。

相关问题