User Tools

Site Tools


module:python:checkthread:checkthread

This is an old revision of the document!


CheckThread

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 : <code python> # 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') # # </code> Run-Ausgabe im Terminal: <code> »> Running ..\Esp32Threading.py »> »> * Esp32CheckThreading: begin CBOnExecute[T1]: begin CBOnExecute[T1]: Hello(1)! CBOnExecute[T1]: Hello(2)! CBOnExecute[T1]: Hello(3)! CBOnExecute[T1]: Hello(4)! CBOnExecute[T1]: Hello(5)! CBOnExecute[T1]: end * Esp32CheckThreading: end ♦♦> MicroPython v1.17 on 2021-09-02; ESP32 module with ESP32 Type “help()” for more information. »> </code> ===== Version ===== 2112081352_Esp32CheckThreading_01V01.zip —— Open Hard- & Software [ DokuWiki WebSites MediaWiki NextCloud ]

module/python/checkthread/checkthread.1639079303.txt.gz · Last modified: 2021/12/09 21:48 (external edit)