1

我正在尝试从我的 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
4

0 回答 0