我的问题是当我从渲染器进程调用ipcMain操作时 渲染器线程被卡住,直到ipcMain操作完成(sync而不是异步)
代码示例:
Renderer.js
export const startCopy = data => {
// Copy files tree to the drive
ipcRenderer.send('copy-files', data);
return new Promise((resolve, reject) => {
ipcRenderer.on('copy-files-finished', (event, error) => {
resolve(error);
});
});
}
Main.js
ipcMain.on('copy-files', (event, data) => {
const error = copyFiles();
console.log(error);
event.sender.send('copy-files-finished', error);
});
非常感谢。
答案 0 :(得分:1)
是的,当我处理电子问题时遇到同样的问题,所以我想建议你选择一个我认为最好的选择
在单独的窗口中执行耗时的任务或系统相关任务 独立于主窗口(渲染过程)它永远不会影响 主窗口(渲染过程)。
之后,将消息发送到主窗口(渲染过程)以通知和更新UI。