Python запустить поток метода класса один за другим - PullRequest
1 голос
/ 27 марта 2020
class rem:
    def __init__(self):
        pass

    def start(self):
        pass

    def stop(self):
        pass


class cycle:
    def __init__(self):
        pass

    def start(self):
        re = [rem1, rem2, rem3, rem4]
        th = [t1, t2, t3, t4]
        cy = [c1, c2, c3, c4]
        for i in range(3):
            for r, c, t in zip(re, cy, th):
                if c.get() == 1:
                    t = threading.Thread(target=r.start, daemon=True)
                    t.start()
            for c, t in zip(cy, th):
                if c.get() == 1:
                    t.join()

в приведенном выше коде re является объектом класса rem, например, re = [rem1, rem2, rem3, rem4] ... я объявил это в своем коде

cy - это еще одна вещь, которую он получает метод, который дает 0, 1, он также имеет 4 obj cy = [c1, c2, c3, c4]

это поток obj th = [t1, t2, t3, t4]

сейчас Я хочу запустить этот код, как t1 поток t1 закончил t2 поток t2 закончил ....

Здесь я пытаюсь другой метод без потока

ispaused = False

class rem:
    def __init__(self):
        pass
    def temp(self):
        # doing somthing then
        self.stop()

    def start(self):
        global ispaused
        ispaused = True
        self.temp()
        pass

    def stop(self):
        global ispaused
        ispaused = False


class cycle:
    def __init__(self):
        pass

    def start(self):
        cy = [c1, c2, c3, c4]
        re = [rem1, rem2, rem3, rem4]
        for r in range(3):
            for re, c in zip(re, cy):
                if c.get() == 1:
                    re.start()
                    self.wait()

    def wait(self):
        global ispaused
        if ispaused:
            return self.wait()

Я хочу запустить код, как запустить obj один дождитесь выполнения, затем запустите другой объект, но

здесь я получаю ошибку RecursionError: превышена максимальная глубина рекурсии.

Я не могу использовать sleep () или while, потому что l oop Ткинтера работает.

Возможно ли в этом коде или другим способом ???

заранее спасибо

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