Как я могу использовать модуль потоковой передачи в 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
Вы должны передать вызываемый, а не результат, как цель: target=self.method
а не self.method()
.
target=self.method
а неself.method()
.