私が望むのは、関数の所要時間に関係なく、毎秒関数を実行できるようにすることです (常に 1 秒未満にする必要があります)。いくつかのオプションを検討しましたが、どれが最適かわかりません。
遅延関数を使用するだけでは、関数の実行にかかる時間が考慮されません。
関数の時間を計り、それを 1 秒から差し引き、残りの遅延を補うと、時間の計算は考慮されません。
threading.timer を使用してみました (これがどのように機能するかについてはよくわかりません) が、1 秒よりも遅いように見えました。
threading.timer をテストするために試したコードは次のとおりです。
def update(i):
sys.stdout.write(str(i)+'\r')
sys.stdout.flush()
print i
i += 1
threading.Timer(1, update, [i]).start()
関数にかかる時間の長さに関係なく、これを行う方法はありますか?