Skip to content Skip to sidebar Skip to footer

Wait Function That Uses While

I just wrote a function that looked like this: def block_for(seconds): '''Wait at least seconds, this function should not be affected by the computer sleeping.''' end_time

Solution 1:

time.sleep(seconds) seconds does just that without burning through CPU cycles. your loop keeps the CPU fully busy. i do not know for you but i consider this bad.

Solution 2:

maybe putting time.sleep(1) in the while loop will require less cycles? Or

defblock_for(seconds):
    """Wait at least seconds, this function should not be affected by the computer sleeping."""
    end_time = datetime.datetime.now() + datetime.timedelta(seconds=seconds)

    while datetime.datetime.now() < end_time - datetime.timedelta(seconds=1):
        time.sleep(1)

    while datetime.datetime.now() < end_time:
        pass

Post a Comment for "Wait Function That Uses While"