Чтобы подвести итог моей проблемы, я хочу загрузить основной макет моих программ, но в то же время запустить фоновый демон для проверки задач в базе данных и уведомления пользователя.Я выполняю демон в потоке с помощью wx.CallAfter, но при загрузке программы графический интерфейс останавливается, пока поток не обрабатывает все уведомления, а затем загружает == он не работает в фоновом режиме.
В основном я пытался: - запустить скрипт в потоке - запустить поток с методом CallAfter
Вот фрагмент моего мэйнфрейма (только его часть слишком большая):
[code]
class MyForm(wx.Frame):
#----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "ICSOFT", size = (1400,700))
[...]
wx.CallAfter(notdaemon)
[...]
def notdaemon():
import notdaemon
thread = threading.Thread(target=notdaemon.rundaemon(None), args=())
thread.daemon = True
thread.start()
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()
вот выдержка из notdaemon:
def rundaemon(self):
for i, a in reminders.items():
[...]
notwin = wx.adv.NotificationMessage(u'test', message=msg, parent=None, flags=wx.ICON_INFORMATION)
notwin.Show()
time.sleep(5.5)
Таким образом, графический интерфейс пользователя просто зависает, пока rundaemon не отображает все уведомления ..
Любые идеи или помощь оченьвысоко ценится, спасибо :) 1013 *