Найти - Пользователи
Полная версия: многопоток futures и PyQt4
Начало » GUI » многопоток futures и PyQt4
1
Игнат
подробно описал здесь - http://python.su/forum/viewtopic.php?pid=63615
но видимо из-за сложности вопроса ответа нет, а сам решение пока найти не смог

использую питон3, модуль futures для многопоточности - http://pypi.python.org/pypi/futures/2.1.2
каждому объекту future задается callback ‘process_result’

        for proxy in proxies:
future = self.executor.submit(self.worker, proxy)
future.add_done_callback(self.process_result)
self.pending.add(future)
в этом callback сейчас и обновляется UI по мере работы потоков
но это приводит к ужасным глюкам: чем больше элементов UI затрагивается в callback, тем больше он глючит и сыпет ошибки:
X Error: RenderBadGlyphSet (invalid GlyphSet parameter) 161
Extension: 148 (RENDER)
Minor opcode: 25 (RenderCompositeGlyphs32)
Resource id: 0x26
как правильно обновлять UI? через систему сигналов и слотов?
Игнат
с другой стороны здесь - http://python.su/forum/viewtopic.php?id=9111
напротив рекомендовали использовать process_result для обновления UI:

 def process_result(self, future):
# callback is called in main thread
# it's good practice to communicate with UI in main thread only
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB