Как запустить функцию в фоновом режиме другой функции с помощью потоков в Python?

1

Как я могу использовать модуль потоковой передачи в python? Кажется, это не работает для меня, и из того, что я видел в Интернете, должно быть. Я думаю, что правильно использую его, но ничего не работает. Чтобы уточнить, я хочу запустить функцию в фоновом режиме (навсегда), но она всегда застревает в цикле, прежде чем начнется поток.

Здесь мой код или, по крайней мере, его версия, которую я написал, которая копирует его, не отказываясь от моих секретов.

import threading

class class1:
    def method(self):
        while True:
            # do stuff here
            # gets stuck in this loop
    def threadfunc(self):
        thread = threading.Thread(target=self.method(),args=())
        thread.start()
r = class1() #                                       These (<) three lines of code don't work
thread = threading.Thread(target=r.method(),args=()) #      <
thread.start() #                                            <
print("Hello") # never gets run
c = class1() #    These (<) two don't work either, even if I get rid of the three above
c.threadfunc() #         <
print("Hello") # never gets run
  • 0
    target=self.method а не self.method() .
  • 0
    Это сработало, спасибо. Не могли бы вы опубликовать его как ответ, чтобы я мог отметить его как ответ?
Теги:
multithreading

1 ответ

0
Лучший ответ

Вы должны передать вызываемый, а не результат, как цель: target=self.method а не self.method().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню