====== CheckThread ====== [[http://www.openhardsoftware.de/ | Open Hard- & Software]] [ [[http://www.openhardsoftware.de/dokuwiki | DokuWiki]] [[http://www.openhardsoftware.de/websites | WebSites]] [[http://www.openhardsoftware.de/mediawiki | MediaWiki]] [[http://www.openhardsoftware.de/nextcloud | NextCloud]] ] ===== Benutzung ===== Python-Library **Thread.py** : # import threading as THR import enum as ENU # class EStateThread(ENU.Enum): stIdle = 0 stBusy = 1 stEnd = 2 # def CBOnExecute(thread): if (None != thread.OnBusy): thread.OnBusy(thread) if (None != thread.OnEnd): thread.OnEnd(thread) # class CThread(): # def __init__(self, onstart, onbusy, onabort, onend): self.State = EStateThread.stIdle self.Thread = THR.Thread(target=CBOnExecute, args=(self,)) self.OnStart = onstart self.OnBusy = onbusy self.OnAbort = onabort self.OnEnd = onend # def Start(self): self.State = EStateThread.stBusy if (None != self.OnStart): self.OnStart(self) self.Thread.start() return # def Abort(self): self.State = EStateThread.stEnd if (None != self.OnAbort): self.OnAbort(self) return Aufrufendes Programm **CheckThread.py** : # import time # import Thread as THR # def CBOnStart(thread): print('CBOnStart') return # def CBOnBusy(thread): print('CBOnBusy: 0') while (THR.EStateThread.stBusy == thread.State): print('CBOnBusy...') time.sleep(1.0) return # def CBOnAbort(thread): print('CBOnAbort') return # def CBOnEnd(thread): print('CBOnEnd') return # #----------------------------------------------------------- if ('__main__' == __name__): print('*** CheckThread: begin') # Thread = THR.CThread(CBOnStart, CBOnBusy, CBOnAbort, CBOnEnd) Thread.Start() time.sleep(5.0) Thread.Abort() # print('*** CheckThread: end') # # Run-Ausgabe im Terminal: In [19]: runfile('C:/Downloads/python/CheckThread.py', wdir='C:/Downloads/python') Reloaded modules: Thread *** CheckThread: begin CBOnStart CBOnBusy: 0 CBOnBusy... CBOnBusy... CBOnBusy... CBOnBusy... CBOnBusy... CBOnAbort *** CheckThread: end CBOnEnd ===== Version ===== {{:module:python:CheckThread:2112092053_CheckThread_01V01.zip | 2112092053_CheckThread_01V01.zip}} ------ [[http://www.openhardsoftware.de/ | Open Hard- & Software]] [ [[http://www.openhardsoftware.de/dokuwiki | DokuWiki]] [[http://www.openhardsoftware.de/websites | WebSites]] [[http://www.openhardsoftware.de/mediawiki | MediaWiki]] [[http://www.openhardsoftware.de/nextcloud | NextCloud]] ]