相关疑难解决方法(0)

如何在经过一段时间后停止while循环?

如果它没有达到我想要的效果,我将如何在5分钟后停止while循环.

while true:
    test = 0
    if test == 5:
        break
    test = test - 1
Run Code Online (Sandbox Code Playgroud)

这段代码让我陷入了无尽的循环.

python python-2.7

55
推荐指数
5
解决办法
13万
查看次数

python:相当于SIGALRM的windows

我有这个装饰:

def timed_out(timeout):
    def decorate(f):
        if not hasattr(signal, "SIGALRM"):
            return f

        def handler(signum, frame):
            raise TimedOutExc()

        @functools.wraps(f)
        def new_f(*args, **kwargs):
            old = signal.signal(signal.SIGALRM, handler)
            signal.alarm(timeout)
            try:
                result = f(*args, **kwargs)
            finally:
                signal.signal(signal.SIGALRM, old)
            signal.alarm(0)
            return result

        new_f.func_name = f.func_name
        return new_f

    return decorate
Run Code Online (Sandbox Code Playgroud)

但代码只能在linux上执行任何操作,因为在Windows上,没有SIGALRM.在Windows中使用此代码的最简单方法是什么?

python windows signals signal-handling alarm

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

alarm ×1

python-2.7 ×1

signal-handling ×1

signals ×1

windows ×1