33 lines
756 B
Python
33 lines
756 B
Python
from PyQt5 import QtCore
|
|
from multiprocessing import Pool, cpu_count
|
|
import dill
|
|
|
|
|
|
def run_dill_encoded(what):
|
|
fun, args = dill.loads(what)
|
|
print("load", fun, args)
|
|
return fun(*args)
|
|
|
|
|
|
def apply_async(pool, fun, args):
|
|
print("...", fun, args)
|
|
print("dumps", dill.dumps((fun, args)))
|
|
return pool.map_async(run_dill_encoded, (dill.dumps((fun, args)),))
|
|
|
|
|
|
def func1():
|
|
print("func")
|
|
|
|
|
|
class WorkerPool(QtCore.QObject):
|
|
|
|
def __init__(self):
|
|
super(WorkerPool, self).__init__()
|
|
self.pool = Pool(cpu_count())
|
|
|
|
def add_task(self, task):
|
|
print("adding task", task)
|
|
# task['fcn'](*task['params'])
|
|
# print self.pool.map(task['fcn'], task['params'])
|
|
apply_async(self.pool, func1, ())
|