【问题标题】:Is there any way to cancel UrlRequest in Kivy?有什么办法可以取消 Kivy 中的 UrlRequest?
【发布时间】:2016-10-14 04:48:33
【问题描述】:

有什么办法可以取消 Kivy 中的 UrlRequest 吗?

def got_url(req, result):
    print(result)
req = UrlRequest('http://httpbin.org/delay/2', got_url)  # Request lasts 2 seconds

def my_callback(dt):
    print('Request cancelled.')
    # sort of req.cancel()
Clock.schedule_once(my_callback, 1)  # But some event happens after 1 sec. and I want to cancel request

这只是一个例子:我知道超时,我想取消一些任意事件的请求。

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    Afaik 除了UrlRequest.timeout 之外别无他法,它可以转化为礼貌地等待并安全地关闭任何有害的东西。它使用Thread,这可能是也可能不是危险的。甚至更多,例如打包成 exe 或其他形式的二进制文件,因为某些东西坏了,它可能会创建一个锁。我认为您希望它使用的方式只会引发问题。

    还有另一种方式使用on_* 事件和尽可能小的timeout,它可以触发你的函数。

    示例:如果您想在该时间后取消它,请将超时设置为 1 秒,并让 UrlRequest 在这样做时对您执行 ping 操作,即

    1. 使用起来比随意停放更安全
    2. 重新发明轮子的行数更少

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      相关资源
      最近更新 更多