Python3.x 一个简单的后台任务写法
思路源自: StackOverflow Core:
class BackgroundTasks(threading.Thread):
    __task = None
    def Stop(self):
        self.__task = None
    def __init__(self, task):
        super().__init__()
        self.__task = task
    def run(self, *args, **kwargs):
        while True:
            if self.__task is None:
                break
            self.__task()
            time.sleep(0.5)
测试代码:
# 等待一会还在准备好的状态,那就说明号可能被禁止游戏了
EndTime = 5
cTime = time.time()
def __check():
    if lobby.GetState() == State.Dota2Ready:
        if (time.time() - cTime) >= EndTime:
            print(userName, " 可能被禁赛了,进手动查看....")
            bTask.Stop()
    pass
bTask = BackgroundTasks(__check)
bTask.start()
def exitApp(signum, frame):
    bTask.Stop()
    exit()
signal.signal(signal.SIGINT, exitApp)
signal.signal(signal.SIGTERM, exitApp)