Как проверить, жив ли QThread или убит, и перезапустить его, если он убит в PyQt5? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть приложение PyQt5 для обновления коллекций баз данных одну за другой с помощью QThread и отправки сигнала обновления в основной поток, когда каждая коллекция обновляется, чтобы отразить его на GUI. Он работает непрерывно 24X7. Но почему-то данные перестают обновляться, а также GUI перестает получать сигналы. Но приложение все еще работает, поскольку другие части доступны и работают нормально. Также в файле журнала ошибок не обнаружено. В основном приложение работает нормально, но после некоторого случайного периода возникает эта проблема (сначала примерно через месяц, затем через 2 недели и теперь через 23 дня). Однако перезапуск приложения решает проблему. Я пробовал использовать методы isRunning () и isFinished (), но изменений не обнаружил.

Кто-нибудь может сказать, в чем проблема ?? Заранее спасибо. Также скажите, как проверить погоду QThread завис или убит?

1 Ответ

0 голосов
/ 18 июня 2020

Если в потоке возникает какое-либо исключение, поток может быть скоро завершен. поэтому вы должны использовать функцию settimeout для вызова любой сторонней библиотеки (обновления данных) в потоке. Это решит вашу проблему.

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