当我需要将GLib超时函数设置为
self.timeout_id = GLib.timeout_add_seconds(refresh, self._check_price)我使用
def stop(self):
if self.timeout_id:
GLib.source_remove(self.timeout_id)以确保此timeout_id在尝试删除之前仍然存在。
然而,我仍然不时收到这些令人讨厌的错误信息:
警告:在尝试删除源ID 443时未找到 GLib.source_remove(self.timeout_id)
怎么做?
发布于 2018-05-02 15:08:21
显然,源是通过stop()以外的其他控制路径被删除的。我在这里(从您提供的代码中)可以想到的唯一候选方法是self._check_price方法。如果从中返回False/GLib.SOURCE_REMOVE,则还应取消设置self.timeout_id
def _check_price(self):
…
self.timeout_id = 0
return GLib.SOURCE_REMOVEhttps://stackoverflow.com/questions/50137029
复制相似问题