Делаю так:
class Connect(threading.Thread):
def __init__(self, printer):
self.printer=printer
threading.Thread.__init__(self,name='thre',target=self.run)
def __call__(self):
if self.isAlive():
print ‘PASS’
else:
#self.join()
print ‘123123’
#print self.isDaemon()
print self.isAlive()
time.sleep(1)
self.start()
def run(self):
gl=
for name in gl:
тут всякие комманды ….
if gui.response(): # тут из gui вызываем кнопочку с вопросом да/нет
pass #если нет, то завершаем метод
else:
self.printer('Работа завершена')
print self.isAlive()
print ‘EXIT’
sys.exit(1)
проблема в том, что когда я вызваю метод run, проверяю на существование поока, и он не существует и нормально запускает метод run в отдельном потоке.
Далее, после того как метод завершит работу, проверяю, сужествует ли? Пишет false, казалось бы правильно, пытается запустить метод run, но тот не запускается, пишет вот что:
File “gui.py”, line 40, in __call__
self.start()
File “/usr/lib/python2.6/threading.py”, line 465, in start
raise RuntimeError(“thread already started”)
RuntimeError: thread already started
то есть поток продолжает существовать. Как его уничтожить или я что-то жедаю не так?
и sys.exit не работает…..
Спасибо!