我正在用tkinter用python编写一个应用程序。在这个应用程序我试图发送一批电子邮件,我想显示一个进度条,而他们正在发送。我可以创建进度条并启动它,但当电子邮件被发送时,该条停止移动(如果它是在电子邮件发送之前启动的,我想在电子邮件发送之前启动该条,但它只是挂起,当我这样做时,它就挂起了,没有任何东西在栏上移动。在
startProgressBar()
sendEmails()
stopProgressBar()
我试过把发送邮件的方式分为一个单独的线程,但我似乎没有任何运气。我正在使用高级线程模块。有什么建议吗?也许我没有弄好穿线部分。我正在使用smtplib发送电子邮件。在
试着这样做:
这对你应该有用。 希望有帮助:)
此后,我在应用程序的更新中重新讨论了这个问题。我已经将其转换为使用Swing for the UI的jython项目。在
同样,我认为使用观察者模式是解决问题的最简单方法。对于我的项目来说,拥有并发线程并不是一个必要条件,我只想给出一个大致的进度视图。观察者模式非常适合我的需要,观察者模式的Java实现特别有用。在
这是一个老问题,但我所指的代码配方帮助我实现了一个类似的概念,所以我认为应该与大家分享。在
这种类型的问题需要使用线程,这样我们就可以将更新GUI和执行实际任务(例如发送电子邮件)的任务分开。从Active State看一下这个code recipe,我相信它正是您所要寻找的线程化和线程间(通过队列)传递信息的示例。在
我试图强调代码配方中的重要部分。我不包括设置进度条本身,而是整个代码结构和获取/设置队列。在
相关问题 更多 >
编程相关推荐