Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

Python Threading

By: a guest on Oct 28th, 2012  |  syntax: Python  |  size: 1.10 KB  |  hits: 39  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import gtk, gobject, threading, time
  2.  
  3. gobject.threads_init()
  4.  
  5. class T(threading.Thread):
  6.     pause = threading.Event()
  7.     stop = False
  8.  
  9.     def start(self, *args):
  10.         super(T, self).start()
  11.  
  12.     def run(self):
  13.         while not self.stop:
  14.             self.pause.wait()
  15.             gobject.idle_add(self.rungui)
  16.             time.sleep(0.1)
  17.  
  18.     def rungui(self):
  19.         print "printed"
  20.  
  21. class Start:
  22.        
  23.         def toggle_thread(self, *args):
  24.                 thread = T()
  25.                 if not thread.is_alive():
  26.                         thread.start()
  27.                         thread.pause.set()
  28.                         self.button.set_label('Pause Thread')
  29.                         return
  30.  
  31.                 if thread.pause.is_set():
  32.                         thread.pause.clear()
  33.                         self.button.set_label('Resume Thread')
  34.                 else:
  35.                         thread.pause.set()
  36.                         self.button.set_label('Pause Thread')
  37.        
  38.         def __init__(self):
  39.                 thread = T()
  40.                 window = gtk.Window()
  41.                 self.button = gtk.ToggleButton('Start Thread')
  42.                 self.button.connect('toggled', self.toggle_thread, None)
  43.                 window.add(self.button)
  44.                 self.button.show()
  45.                 window.show()
  46.                
  47.         def main(self):
  48.                 gtk.main()
  49.                                
  50. if __name__ == "__main__":
  51.         start = Start()
  52.         start.main()