Приложение Windows Electron закрыть не заканчивающиеся темы - PullRequest
0 голосов
/ 31 августа 2018

У меня есть приложение Electron, работающее под Windows, у него есть несколько элементов управления в главном окне и кнопка отмены. Я замечаю, что когда он запущен, я вижу два потока, я предполагаю основной поток и поток рендеринга При нажатии кнопки отмены средство визуализации отправляет сообщение IPC в основной поток, а основной поток вызывает app.quit. При этих условиях две нити заканчиваются. Если щелкнуть правой кнопкой мыши значок на панели задач Windows для приложения и выбрать «Закрыть», потоки заканчиваются только тогда, когда приложение запускается под отладчиком VSCode, когда приложение запускается без отладчика, и то же самое делается, два потока остаются .

Как я могу отладить это? Любые предложения относительно того, почему это происходит.

В отладчике я вижу, что закрытие перехватывается в основном потоке, и вызывается app.quit.

ОБНОВЛЕНИЕ: Так как приложение использовало Electron 1.7.9, я обновил его, чтобы использовать 2.0.8 на тот случай, если эта проблема была решена. Однако с 2.0.8 проблема остается.

Sid

1 Ответ

0 голосов
/ 13 сентября 2018

Благодаря некоторому вкладу сообщества Electron Slack я решил эту проблему. Моя ошибка была в том, как я вызывал метод app.quit ().

Мой код обрабатывал MainWindow при событии «close» и выполнял метод app.quit () в этом обработчике события.

Правильный способ закрыть приложение - это обработать событие приложения «окно-все-закрыто» и выполнить там метод app.quit ().

Вот суть скриншота main.js для приложения Electron, которое было отправлено мне, чтобы помочь мне решить проблему.

https://gist.github.com/sidprice/612cb49cec923eeb94cfcddf1736c181

Sid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...