【问题标题】:How to use Electron remote with a helper process?如何在辅助进程中使用 Electron 遥控器?
【发布时间】:2020-07-21 04:15:27
【问题描述】:

我阅读了很多关于 Electron 中的主/渲染器进程的信息,对我来说,它们似乎都不适合我的繁重 I/O 任务,所以我正在考虑使用一个附加 过程。在阅读了这个过时的媒体博客Deep dive into Electron’s main and renderer processes 后,我得到了这种感觉,其中指出:

那么我在哪里做 CPU 密集型工作呢?

我以前以为主要流程 是“举重”的理想场所,因为它不会阻挡 用户界面。这实际上是错误的——如果你主要做 CPU 密集型工作 进程,它会锁定你所有的渲染进程(并给你 macOS 上臭名昭著的沙滩球)。 所以 CPU 密集型任务应该运行在一个 单独的过程

不幸的是,它是从 2016 年开始的,API 略有变化。不幸的是,我找不到任何更新的示例。我当然找到了require("electron").remote,但我错过了一些如何产生额外进程的例子。有人有我可以查找的关键字吗?

我使用Electron 9.1.0Node 12.8.0. LTS

【问题讨论】:

    标签: node.js electron


    【解决方案1】:

    首先,我们需要区分CPU 密集型 任务和大量I/O 任务;充分利用原生异步机制,JavaScript 在处理繁重的 I/O 任务时应该不会有问题。

    完全不同的故事是当我们谈论 CPU 密集型 任务时,这些任务存在您引用的博客中所述的问题。

    要处理 CPU 密集型 任务,您可以找到有用的 Workers(或 Node.js 实现:Worker threads

    【讨论】:

    • 感谢您的回复!我想使用本机模块nodegit,我需要将其外包给主进程或新进程。您有什么更适合的建议吗?
    • 对不起,但我不知道 nodegit,无论如何我的建议是 本地人来处理 CPU 密集型 任务,可能任何其他实现中继其中之一。
    猜你喜欢
    • 2011-09-20
    • 2021-05-20
    • 2017-11-22
    • 2014-07-17
    • 1970-01-01
    • 2016-02-06
    • 2020-04-13
    • 2011-01-17
    • 2020-04-09
    相关资源
    最近更新 更多