为什么我的GLib超时有时没有被破坏?

问题描述

我使用超时来定期执行操作。有时需要修改超时间隔,因此我设置了新的超时,然后通过从回调返回False来销毁旧的超时。但是,我得到的错误报告似乎很清楚地表明,有时由于未按旧的和新的超时间隔运行操作,所以初始计时器没有被销毁。您能想到任何可能的原因吗?这似乎很少见,我无法复制。

这是回调函数的python代码。在创建新计时器(成功)和返回False(似乎有时很少会破坏原始计时器)之间,基本上没有任何反应。

自编写此代码以来,我已经对其进行了修改以存储超时返回值,并使用GLib.soURCE_CONTINUEGLib.soURCE_REMOVE代替True / False,但是该版本尚未部署。但是,我认为这些更改在这里不应该涉及。

    def on_interval_timeout(self,user_data):

        # perform action here

        # update timeout if required
        if self.update:
            interval = (self.model.props["interval-min"] * 60 +
                        self.model.props["interval-sec"])
            GLib.timeout_add_seconds(interval,self.on_interval_timeout,None)
            self.update = False
            return False

        return True

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)