【发布时间】:2023-02-07 14:23:50
【问题描述】:
当我运行 app.quit() 或 app.exit() 时,主应用程序窗口关闭,但其他 4 个电子进程继续运行。
我认为这可能是由一个静默错误引起的,尝试用 try / catch 包装函数,但没有出现。
如果有人帮我找到问题/解释代码有什么问题,我将不胜感激
主要Electron进程的代码:
https://github.com/aleksey-hoffman/sigma-file-manager/blob/main/src/electronMain.js
如果你想运行它,这里是指令:
https://github.com/aleksey-hoffman/sigma-file-manager/blob/main/CONTRIBUTING.md
【问题讨论】:
-
很多代码要经过。你知道这些基于命令行参数的进程是什么吗?它们像 Electron 渲染器/GPU/网络进程吗?主要过程?您的应用程序启动的第三方进程?
-
所有 4 个进程都是 electron.exe 进程(GPU、隐藏渲染器、主进程),只有主渲染器窗口关闭,然后出现托盘和其他侦听器错误,因为主窗口不再存在但应用程序仍处于打开状态。我还尝试在关闭之前从窗口中删除监听器
-
我发现问题是由
initWindowListeners()引起的,如果我删除其中的所有内容,问题就消失了。因此,问题似乎出在 Windows eventListeners 阻止应用程序存在。现在我需要弄清楚如何删除所有这些听众 -
特别是,问题出在这个监听器上:
windows.quickViewWindow.once('closed', () => {createQuickViewWindow()})