クラスに次のコードがあります。
def __setattr__(self, key, value):
    self.__dict__['d'][key] = value
    ...
    self.saveToIni()
この関数は、すべてのオブジェクトの呼び出しsaveToIniで、dict のすべての項目を ini ファイルに保存します。setattr最後の 120 ミリ秒で80 回setattrの呼び出しが行われた場合、ファイルは毎回ゼロから書き込まれます。関数は辞書からデータを並べ替えたり、削除したりすることもあるので、変更したくありません。
呼び出しを 1 回、たとえば 5 秒に制限したい:
- 最初のsetattrトリガーがトリガーされると、タイマーは非同期に開始されますが、まだ実行されていませんsaveToIni。
- への呼び出しが行われsetattr、タイマーがまだカウントされている場合、タイマーを起動したり、実行したりしませんsaveToIni。
- タイマーがタイムアウトすると、saveToIniが起動します。
今、私はこの振る舞いを達成する方法がわかりません。スレッドをいじることを考えましたが、それを行う方法についてのアイデアはまだ見つかりませんでした。