I am trying to create new process to run separate tasks using multiprocessing
. below is a simple demo:
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
from multiprocessing import Process as mProcess
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow,self).__init__()
self.initUI()
self.processes = []
def initUI(self):
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle("Tech With Tim")
self.b1 = QtWidgets.QPushButton(self)
self.b1.setText("click me!")
self.b1.clicked.connect(self.button_clicked)
def dummyFunction(self):
def f(text):
print(text)
p = mProcess(target=f, args=(100,))
self.processes.append(p)
p.start()
def button_clicked(self):
self.dummyFunction()
def window():
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
if __name__ == "__main__":
window()
But I got this error:
Can't pickle local object 'MyWindow.dummyFunction.<locals>.f'
.
.
OSError: [WinError 6] The handle is invalid