Я пишу програму GUI, яка регулярно завантажує дані через веб-з'єднання. Оскільки цей пошук займає деякий час, це призводить до того, що інтерфейс користувача не реагує на процес пошуку (його неможливо розділити на менші частини). Ось чому я хотів би передати веб-з'єднання окремим робочим потоком.
[Так, я знаю, зараз у мене дві проблеми .]
У будь-якому разі, програма використовує PyQt4, тож я хотів би знати, який кращий вибір: використовувати нитки Qt або використовувати threading
модуль Python ? Які переваги / недоліки кожного? Або у вас є зовсім інша пропозиція?
Редагувати (re bounty): Хоча рішення в моєму конкретному випадку, ймовірно, буде використовувати мережевий запит, що не блокує, як, наприклад, запропонували Джефф Обер та Лукаш Лалінські (так що, як правило, проблеми з паралельною кон'юнктурою залишаються в реалізації мережі), я все одно хотів би більше поглиблена відповідь на загальне питання:
Які переваги та недоліки використання потоків PyQt4 (тобто Qt) над рідними потоками Python (з threading
модуля)?
Редагувати 2: Дякую за всі відповіді. Хоча немає 100% згоди, мабуть, існує широкий консенсус, що відповідь - «використовувати Qt», оскільки перевагою цього є інтеграція з рештою бібліотеки, не створюючи при цьому реальних недоліків.
Для всіх, хто хоче вибрати між двома реалізаціями потоків, я настійно рекомендую прочитати всі відповіді, надані тут, включаючи потік списку розсилки PyQt, на який посилається абат .
Було кілька відповідей, які я вважав за щедроту; врешті-решт я вибрав ігумена для дуже актуального зовнішнього посилання; це був, однак, тісний дзвінок.
Знову дякую.