#下面代码是一个简单的计时器监视任务在指定时间内是否完成,如果任务完成,则结束任务,如果超过任务时间未完成,则判定任务失败。
思路论述:
1.threading.Timer
利用threading.Timer设置限时任务的时间范围,超过时间则判定任务失败。
2.while
为了实时监视任务是否完成,采取了while循环进行判定,但持续while判定会影响性能,因此再采用一个time.sleep,每过1s确认一次进度。
3.self属性
使用类的self属性可以类中通用,当任务完成时如图中例子则self.jk=1,然后暂停上方的threading.Timer,并打印任务完成。同时用self.ol控制循环,这样在任务完成的同时循环也会结束。
# -- coding: utf-8 --
import threading
import time
class ee():
def __init__(self, args):
self.args=args
self.jk=0
self.ol=0
print("yes")
def yunx(self):
def my_task():
print("任务失败")
timer = threading.Timer(10, my_task) # 10秒后核实任务
timer.start()
def stop():
print("任务完成...")
interval = 1 # 间隔1秒
while 1-bool(self.ol):
self.jk=self.jk+1
print(self.jk)
if self.jk==5:
self.ol=1
timer.cancel()
stop()
time.sleep(interval)
au=ee(2)
au.yunx()
码字不易,如有帮助留个赞再走咯。