Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > как прервать работу потоков в concurrent.futures?


Автор: kvadroziphal 20.1.2011, 16:24
здравствуйте

использую python3, pyqt4, concurrent.futures
запускать потоки научился, но не могу понять как их теперь остановить

запускаю так:

Код

 self.executor = ThreadPoolExecutor(max_workers=self.threads)
        self.pending = set()
        
        for proxy in proxies:            
            future = self.executor.submit(self.worker, proxy)
            future.add_done_callback(self.process_result)
            self.log('проверяем ' + proxy)
            self.pending.add(future)
            self.app.processEvents()


делал в классе флаг - self.stopCheck, который становился True при нажатии кнопки в UI
затем вставлял проверку на этот флаг в self.worker, self.process_result, в слот, который вызывается из self.process_result для обновления UI
пробовал обнулять self.pending

ничего не помогает, всё работает как работало
подскажите, что нужно сделать, чтобы корректно убить все созданные потоки и не плодить новых?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)