1
Есть такой метод запуска:Как выйти из QThread, если у меня есть бесконечный цикл внутри метода выполнения
def run(self):
while True:
new_value = self.client.read_holding_registers(self.reg_num, 1, unit=self.slave_id).registers[0]
if new_value != self.value:
self.value = new_value
self.data_changed.emit(
{"id": "{0};{1};{2};{3}".format(self.host, self.port, self.slave_id, self.reg_num),
"value": self.value})
self.usleep(100)
Поэтому мне нужно, чтобы поймать предстоящие данные из соединения. И у меня нет условия для разрыва этого цикла (только если соединение нарушено). Итак, как я должен прекратить свою работу?
Спасибо за ответ. Я хочу контролировать запуск и остановку потока. Если я хочу создать aroung 100 из этих потоков для бесконечного запуска, какую технологию я использую? –
, когда вы хотите остановить их и как? Вы хотите вручную выбрать и остановить 1 за раз? Я предложил подход демона, так как вы можете вызвать 100 из них в своей основной функции, а затем, когда вы закроете приложение, оно автоматически закроет все потоки демона. – limbo
Я хочу остановить их с помощью кнопки интерфейса (запуск/останов). Да, я хочу выбрать и остановить 1 за раз. Но я думаю, что есть проблема с демонами, что я не могу испускать сигнал для передачи данных в интерфейс. Или может?) Как я знаю, вы можете сделать только сигнал в классе, который наследует QObject. Поэтому мне нужно создать класс, который наследует run.Daemon (из [link] (https://pypi.python.org/pypi/daemons)) и QObject? –