wxPython应用程序被冻结,直到请求完成

wxPython应用程序被冻结,直到请求完成,python,python-requests,wxpython,Python,Python Requests,Wxpython,我有以下方法,当选中复选框时,应该更新我的wxPython应用程序的UI,然后发出网络请求。问题是,如果网络请求包含在checkboxChecked功能中,则会导致UI暂停,直到请求完成。有没有办法更新UI,然后提出请求 def checkboxChecked(self, event, completion): # UI Updates isChecked = self.readBox.GetValue() self.isReadJSON[str(self.curren

我有以下方法,当选中复选框时,应该更新我的
wxPython
应用程序的UI,然后发出网络请求。问题是,如果网络请求包含在
checkboxChecked
功能中,则会导致UI暂停,直到请求完成。有没有办法更新UI,然后提出请求

def checkboxChecked(self, event, completion):

    # UI Updates
    isChecked = self.readBox.GetValue()
    self.isReadJSON[str(self.currentChapter)]["read"] = isChecked
    self.setWordsReadLabelText()

    # Network Request
    completion

使用
wx.CallLater(1,completion)
可以在1毫秒后执行网络请求,从而防止UI冻结

我想你需要
wx.CallAfter
。它允许当前正在进行的任何操作完成,然后调用您的函数(在本例中为网络请求)。还有一个
wx.CallLater
如果您想在进行网络呼叫之前等待指定的时间,则需要超时。我尝试了wx.CallAfter(completion),但它也有相同的问题。然而,wx.CallLater(1,completion)似乎可以工作!