Попытка запустить трудоемкую задачу из графического интерфейса wxpython. Основная идея состоит в том, чтобы запустить долгосрочное задание из графического интерфейса пользователя (нажав кнопку), а затем из него следует обновить статический текст в диалоговом окне.
Сначала я попробовал несколько потоков (http://wiki.wxpython.org/LongRunningTasks и многие другие просмотренные ресурсы), и я хочу показать сообщения с помощью Publisher.class. Все пошло не так хорошо, после одного-двух сообщений графический интерфейс, кажется, завис.
Теперь я хочу добиться этого с помощью многопроцессорной обработки. У меня есть этот метод в моем классе 'GUI':
def do_update(self, e):
self.txt_updatemsg.SetLabel("Don't stop this \n")
...
pub = Publisher() # i tried also calling directly from dbob object
# Publisher() is a singleton so this must be useless?
pub.subscribe(self.__update_txt_message, ('updatedlg', 'message'))
dbob = dbutils.DBUtils() # DBUtils is the class with 'long time' tasks
dbob.publisher = pub
p = Process(target=self.do_update_process, args=(dbob,))
p.start()
while p.is_alive:
wx.Yield
def do_update_process(self, dbob):
dbob.do_update()
__ update_txt_message - простая функция, которая устанавливает статический текст в диалоге.
Вопрос: как я могу отправить несколько текстовых сообщений из этого процесса (просто текст, это все, что мне нужно)
Спасибо, ребята!