Hello, I'm writing a simple application which is supposed to display the contents of the TED RSS feed in a way similar to how the official app works on Android. However, the thumbnail loading process takes a long time, so I want to put it into another process, with the GUI displaying a spinner or a progress bar until the loading finishes. I did not do anything with multiprocessing before, so I'm kind of stuck. Here's my current code from the main runtime script:
from getted.tedtalk import TEDTalkWidgetfrom getted.window import *from getted.tedlister import GetTEDTalksimport shutilimport osfrom multiprocessing import Process def load_ted_talks(twl): print("Worker: Loading thumbnails") tl = GetTEDTalks() # Gets list of TED Talks for t in tl: # Convert TED Talks to widgets twl.append(TEDTalkWidget(t)) print("Worker: {0}/{1} done".format(tl.index(t)+1, len(tl))) print("Worker: Finished") def do_quit (sender, e): print('Quitting / Delete temporary files...') shutil.rmtree('/tmp/getted') Gtk.main_quit(sender, e) def do_onload (sender): print('Window ready, loading talks...') talkwlist = [] p = Process(target=load_ted_talks, args=(talkwlist,)) p.start() sender.populate_ted_talks(talkwlist) if __name__ == '__main__': print('Welcome to GetTED.') getted_window = GetTEDWindow() if not os.path.exists('/tmp/getted'): print('Creating a directory for temporary files') os.makedirs('/tmp/getted') # Create a temp directory for thumbnail files getted_window.set_title("GetTED") getted_window.connect('delete-event', do_quit) getted_window.connect('show', do_onload) print('Starting GetTED window...') getted_window.show_all() Gtk.main() (Pastebin for those who see HTML here: http://pastebin.com/Afhzh3LD ) (GetTEDTalks is a function; I know this is breaking the convention but I'll fix that later) I have created a couple of different versions of load_ted_talks(), but all of them either failed to load the thumbnails, loaded them but way after the main process pushed associated widgets for the window to display, or deadlocked. If anybody has any suggestion on how can I make the application busy-wait until the thumbnails finish loading (while keeping the GUI responsive), then please tell me. Thanks, Filip -- _____________________ Filip Lamparski - FB <https://www.facebook.com/filip.lamparski> - G+<https://plus.google.com/105688569486178456264/posts> _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list