繁体   English   中英

(python) 每 x 秒执行一次函数

[英](python) execute function every x seconds

这是我每 1 秒执行一次函数的源代码

购买,它只执行一次。

总之,我希望得到#从命名管道输出线的每一秒

对这个问题有什么建议吗?

提前谢谢你的帮助

class Monitor:
    def __init__(self, namedpipe, name):
        self.namedpipe = namedpipe
        self.name = name
        self.count = 0
    def run(self):
        print self.name+" start run"
        while True:
            line = self.namedpipe.readline()
            self.count = self.count+1
    def getCost(self):
        print "Hi"


while True:
    line = monitor.readline()
    line = line.strip()
    if not line: 
        ans =raw_input('stop?')
        if ans=='y': break
    monitorList = open(line, 'r')
    m = Monitor(monitorList, line)
    thread.start_new_thread(m.run, ())
    time.sleep(1)
    threading.Timer(0.1, m.getCost).start()

使用 Threading.Timer,您必须在每次计时器到期时重新启动计时器 - 因此在计时器到期时调用的函数的执行期间 - 代码中的 m.getCost - 计时器必须再次启动。 您可能想要定义一个包装函数来完成这项工作,以避免使用计时器的东西污染 m.getCost()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM