我尝试在ElectronJS上创建多线程应用程序,但我以前从未使用过它,并且遇到了线程问题。我使用threads.js https://www.npmjs.com/package/threads作为多线程而不是默认的worker,当我调用sendFile()时,它可以从main.js中很好地工作,我在main.js中有方法可以创建worker并从thread中获得结果。
sendFile = async (text) => {
const send = await spawn(new Worker('./src/service/sender.js'));
const result = await send(text);
console.log(result);
await Thread.terminate(send);
}
package.json
{
"name": "XXXXX",
"version": "1.0.0",
"description": "XXXXXXX",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"author": "",
"license": "ISC",
"browser": {
"fs": false
},
"dependencies": {
"@electron/remote": "^2.0.9",
"electron": "^24.3.1",
"md5-file": "^5.0.0",
"threads": "^1.7.0"
}
}
如何在渲染块中使用此方法?
1条答案
按热度按时间llew8vvj1#
我使用下面的方法,也许有人也会发现它很有帮助。
我创建了一个在主进程(
main.js
)中创建Worker并获得响应的方法。在渲染进程(
sender.js
)中,我导入了ipcRenderer
,并使用send()
方法向主进程发送信息。在主进程(
main.js
)中,我创建了一个监听器: