У меня есть поток, который вызывает Popen
, чтобы получить строку из утилиты командной строки.Эта функция командной строки не возвращается до тех пор, пока не будут получены очень и очень запаздывающие данные сети.Иногда это может занять несколько минут, иногда меньше секунды.
Если пользователь хочет, он может отменить ожидание этих данных.В этом случае, как правильно остановить поток?
class CommThread( threading.Thread ):
def __init__(self):
self.stdout = None
self.stderr = None
self.command = None
threading.Thread.__init__(self)
def run(self):
if self.command is not None:
p = Popen( self.command.split(), shell=False, stdout=PIPE, stderr=PIPE)
self.stdout, self.stderr = p.communicate()