[英]Background infinite loop in python
使用 python 3.8.5,我尝试创建一个 class object 它有一个内部无限循环,它将更新一个值,我以后可以在这个领域阅读的知识有点差。
该试验的目的是将具有 state 的应用程序与我制作的 gui 分离...
这是我做过的一个不起作用的试验。
import asyncio
from time import sleep
class value_holder:
def __init__(self):
self.value = 0
asyncio.create_task(self.infinite_loop())
async def infinite_loop(self):
while True:
self.value += 1
sleep(3)
v = value_holder()
while True:
print(v.value)
sleep(1)
我实际上一无所知,所以如果有人有任何线索或关键字可以帮助我寻找解决方案,我将非常感激
此致
您可以改用计时器:
import threading
from time import sleep
class value_holder:
value = 0
timer = None
delay = 1
def __init__(self, delay):
self.value = 0
self.delay = delay
def run(self):
self.value += 1
print(self.value)
if self.timer != None: self.start()
def start(self):
self.timer = threading.Timer(self.delay, self.run)
self.timer.start()
def stop(self):
self.timer.cancel()
v = value_holder(3.0)
v.start()
sleep(9) #==> 1, 2, 3
v.stop()
print("Stopped")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.