我正在尝试从我的 ui 线程中调用一个从数据库中获取数据的函数。这需要很多时间,我试图在这段时间内保持 ui 响应。我正在使用以下代码:
def onHit(self,evt):
busy = PBI.PyBusyInfo(message, parent=self.Form.resultPage, title="Really Busy");
wx.Yield();
executor = futures.ProcessPoolExecutor(max_workers=1)
##executor = futures.ThreadPoolExecutor(max_workers=1)
future = executor.submit(self.returnData);
future.add_done_callback(self.onComplete);
def onComplete(self,futures):
#build a grid from futures.result()
print future.result()
#del busy
所以我有2个问题。首先,当我尝试运行它时,它说酸洗错误。二、第二个功能中的busy在我无权访问时如何删除?将其声明为全局有意义还是有更简单的方法?从 sql 数据库获取数据后,让我的 ui 响应并更新我的 ui 的最佳方法是什么?我也没有使用进度对话框。
PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup __builtin__.instancemethod failed
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "D:\Python\lib\multiprocessing\forking.py", line 373, in main
prepare(preparation_data)
File "D:\Python\lib\multiprocessing\forking.py", line 488, in prepare
'__parents_main__', file, path_name, etc