Ranting and Roaring

2004/10/14

GenericThread

GenericThread is a part of BlogMatrix Jäger’s “generic” library providing generally useful functions. GenericThread is a wrapper around python’s “threading.Thread” that provides a few useful extra functions:

  • passing of arguments when starting
  • pythoncom initialization, for applications which use Win32 COM objects
  • methods which are called before and after the main body of the thread, for initialization and teardown
  • the ability to gracefully halt thread operations

You can download GenericThread here.

Here’s an example of using GenericThread:

 import time import GenericThread  class MyThread(GenericThread.GenericThread): 	def __init__(self): 		# the named parameters are optional 		GenericThread.GenericThread.__init__(self, is_daemon = False, is_com = False) 		 	def CustomizeStart(self, a, b, c): 		# the command line arguments are arbitrarly defined -- you can as many as you want 		print "CustomizeStart.CustomizeStart: called -- we're in the thread, starting up" 		 	def CustomizeFinished(self, a, b, c): 		print "CustomizeStart.CustomizeFinished: called -- we're in the thread, shutting down" 		 	def CustomizeRun(self, a, b, c): 		print "CustomizeStart.CustomizeRun: called -- we're running: do your work here" 		 		for i in xrange(10): 			self.CheckHalt() 			time.sleep(.5) 			print i, a, b, c 		 thread = MyThread() thread.Start("a", 4784, [ 1, 2, 3 ])  

Powered by WordPress