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)
그래서 내가 연결에서 다가오는 데이터를 잡을 필요가있다. 그리고이 루프를 깨뜨릴 조건이 없습니다 (연결이 끊어진 경우에만). 그래서 어떻게 내 스레드에서 종료해야합니까?
답변 해 주셔서 감사합니다. 내 스레드 시작 및 중지 제어 할 싶습니다. 무한대로 실행하기 위해이 스레드를 100 개 생성하려면 어떤 기술을 사용해야합니까? –
언제 중단하고 싶습니까? 한 번에 하나씩 수동으로 선택하고 중지 하시겠습니까? 데몬 접근법은 주 함수에서 100 개를 스폰하고 응용 프로그램을 닫을 때 자동으로 모든 데몬 스레드를 닫을 수 있기 때문에 제안했습니다. – limbo
인터페이스 버튼 (시작/중지)에서 중지하고 싶습니다. 예, 한 번에 하나씩 선택하고 중지하고 싶습니다. 하지만 데이터에 인터페이스로 전송할 신호를 낼 수 없다는 데몬에 문제가 있다고 생각합니다. 또는 알 수 있듯이 QObject를 상속받은 클래스에서만 신호를 생성 할 수 있습니다. 그래서 나는 [link] (https://pypi.python.org/pypi/daemons)와 QObject에서 run.Daemon을 상속받는 클래스를 생성해야합니까? –