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 ])