QApplication в потоках - PullRequest
       22

QApplication в потоках

0 голосов
/ 10 августа 2011

Я использую модуль с именем spynner с python. Spynner работает на экземпляре QApplication. Мне нужно запускать функции с использованием spynner асинхронно.

Я пытался вызывать эти функции в разных потоках, используя что-то вроде: thread.start_new_thread (function_using_spynner)

Это работает, если я запускаю только одну функцию, но если я пытаюсь запустить 2 из них, я получаю сообщение об ошибке, говорящее о том, что QApplication не может быть создано вне основного потока. Есть ли способ запустить функции асинхронно в одном потоке? Функции ничего не возвращают, поэтому достаточно просто запустить их.

Если нет, есть ли обходной путь для создания экземпляров QApplication вне основного потока? Мне не нужен дисплей.

1 Ответ

0 голосов
/ 10 августа 2011

Вы можете запустить function_using_spynner в главном потоке и делать все, что вам нужно сделать в другом потоке.В качестве альтернативы вы можете запустить QApplication in spynner в главном потоке, прежде чем переходить в несколько потоков.

...