さて、私はスケジューラに取り組んでおり、timeOut(3,print,'hello') のようなものを考えていました.3 秒ごとに hello を出力します.いくつかの方法を試しましたが、すべて失敗しました. また、1 つだけでなく他のタスクも実行する必要があるため、これに time.sleep を使用してもうまくいきません。
編集:必要なことを行う方法を見つけました。混乱して申し訳ありませんが、これで必要なことはうまくいきました。みんなに答えてくれてありがとう。
class test:
def __init__(self):
self.objectives = set()
class Objective:
pass
def interval(self,timeout,function,*data):
newObjective = self.Objective()
newObjective.Class = self
newObjective.timeout = time.time()+timeout
newObjective.timer = timeout
newObjective.function = function
newObjective.repeate = True
newObjective.data = data
self.objectives.add(newObjective)
return True
def runObjectives(self):
timeNow = time.time()
for objective in self.objectives:
timeout = objective.timer
if objective.timeout <= timeNow:
objective.function(*objective.data)
if objective.repeate:
objective.timeout = timeNow + timeout
self.main()
else:
self.objectives.remove(objective)
print('removed')
def main(self):
while True:
self.runObjectives()