2016-10-12 70 views
2

有沒有什麼辦法可以在Kivy中取消UrlRequest?有什麼辦法可以在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 

這只是一個例子:我知道超時,我想取消某些任意事件的請求。

回答

1

Afaik除了UrlRequest.timeout之外沒有別的辦法可以轉化爲禮貌地等待並安全地關閉任何有害的東西。它使用Thread這可能並不危險。甚至更多,例如,打包成可執行文件或其他形式的二進制文件,因爲破壞了某些東西可能會產生鎖。我認爲你希望使用它的方式只會觸發問題。

還有另一種使用on_*事件的方法,儘可能小,可以觸發你的功能。

舉例:設置超時時間爲1秒,如果你想要的時間量之後取消它,讓的URLRequest平,你如果真的如此,這是

  1. 安全比在隨機位置
  2. 停止它使用
  3. 用於重新發明輪子的線的數量較少
相關問題