如何处理电子上的CPU紧张任务

时间:2018-12-02 22:31:10

标签: javascript node.js electron

我正在使用Electron和Angular 7开发桌面应用程序。

我需要压缩文件夹的一部分,这可能会增加很多重量。 我正在使用ipcRenderer从角向电子发送信号以开始压缩。 这是ipcMain的一部分:

Result<T, Error>

问题在于,当文件夹很大时,任务会占用很多时间并阻塞呈现的进程。

我已经尝试使用'electron-remote'及其方法 requireTaskPool ,如下所示:

const { app, BrowserWindow, ipcMain } = require("electron");
const zip = require('file-zip');

...

ipcMain.on('zip', (event, args) => {
  const { from, to } = args;
  zip.zipFolder(from, to, (error) => {
    event.sender.send('zip-response', error);
  });
});

和:

const zip = require('file-zip');
function zipDir(from, to) {
    zip.zipFolder(from, to, (error) => {
        return error;
    });
}
module.exports = zipDir;

但是它不起作用,“ zip”总是立即解析,而不执行zip函数,可能是因为zip.zipFolder使用了回调。

有什么主意吗?

0 个答案:

没有答案