Using multiprocessing Pool with PyQt signal gives pickle error, any way I can send my progress in the loop back to the GUI?
class Analysis(QObject):
progress = pyqtSignal(str)
def __init__(self, data):
self.data = data
self.result = []
def worker_process(self, devices):
for n1, n2 in itertools.product(self.data[devices[0]], self.data[devices[1]])
if n1 == n2:
self.result.append((n1, n2))
self.progress.emit(f'Running on {device[0]} of network {n1} compare with {device[1]} of network {n2}')
def run(self):
devices = ['device_a', 'device_b', 'device_c', ...]
pool = Pool(os.cpu_count() - 1)
return_value = pool.map(self.worker_process, itertools.combinations(devices, 2)) <-- can't pickle Analysis object