PyQt5多线程中,如何实现将线程终止并通过调用 start() 重新启动该线程?

PyQt5多线程中使用terminate()方法终止线程后,调用start()后无法再次启动该线程。
问:该如何实现将该线程终止,并调用start()可以重新启动该线程?

阅读 3.2k
1 个回答

线程不能终止并重新启动,但可以暂停并恢复。示例:

class Me(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.paused = False
        self.pause_cond = threading.Condition(threading.Lock())

    def run(self):
        while True:
            with self.pause_cond:
                while self.paused:
                    self.pause_cond.wait()
                print('在这里做线程应该做的事情')
            time.sleep(5)

    def pause(self):
        self.paused = True
        self.pause_cond.acquire()

    def resume(self):
        self.paused = False
        self.pause_cond.notify()
        self.pause_cond.release()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题