vip莉 2021-12-17 09:07 采纳率: 62.5%
浏览 22
已结题

python多进程里面可以访问UI组件吗?

我试图在进程池中访问UI组件进行修改,像下面这样,ui是创建的对象。报错信息在下面。进程池中可以访问UI组件吗?

        func = partial(self.to_main, ui)

        with ProcessPool(processes= 8) as pool:
            res = pool.map(func, path_list)

  File "E:\PycharmProjects\test.py", line 30, in tomain
    res = pool.map(func, DB_path_list)
  File "D:\Program Files (x86)\Python\Python37\lib\multiprocessing\pool.py", line 268, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "D:\Program Files (x86)\Python\Python37\lib\multiprocessing\pool.py", line 657, in get
    raise self._value
  File "D:\Program Files (x86)\Python\Python37\lib\multiprocessing\pool.py", line 431, in _handle_tasks
    put(task)
  File "D:\Program Files (x86)\Python\Python37\lib\multiprocessing\connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "D:\Program Files (x86)\Python\Python37\lib\multiprocessing\reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
TypeError: can't pickle mywindow objects
Backend TkAgg is interactive backend. Turning interactive mode on.
  • 写回答

2条回答 默认 最新

  • 藏猊 2021-12-17 09:31
    关注

    可以设置信号传参,但不能修改ui

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    藏猊 2021-12-17 09:35

    我之前在stackoverflow问过类似的问题,不管是多进程还是多线程,修改ui都是非常不安全的行为

    回复
    vip莉 回复 藏猊 2021-12-18 01:00

    好的,感谢

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 已采纳回答 12月18日
  • 创建了问题 12月17日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部