首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GLib ()避免来自GLib.source_remove()的警告

使用GLib ()避免来自GLib.source_remove()的警告
EN

Stack Overflow用户
提问于 2018-05-02 14:23:24
回答 1查看 1.7K关注 0票数 0

当我需要将GLib超时函数设置为

代码语言:javascript
复制
self.timeout_id = GLib.timeout_add_seconds(refresh, self._check_price)

我使用

代码语言:javascript
复制
def stop(self):
    if self.timeout_id:
        GLib.source_remove(self.timeout_id)

以确保此timeout_id在尝试删除之前仍然存在。

然而,我仍然不时收到这些令人讨厌的错误信息:

警告:在尝试删除源ID 443时未找到 GLib.source_remove(self.timeout_id)

怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-02 15:08:21

显然,源是通过stop()以外的其他控制路径被删除的。我在这里(从您提供的代码中)可以想到的唯一候选方法是self._check_price方法。如果从中返回False/GLib.SOURCE_REMOVE,则还应取消设置self.timeout_id

代码语言:javascript
复制
def _check_price(self):
    …
    self.timeout_id = 0
    return GLib.SOURCE_REMOVE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50137029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档