FlatCAMWorker.py 811 B

1234567891011121314151617181920212223242526272829
  1. from PyQt4 import QtCore
  2. #import Queue
  3. import FlatCAMApp
  4. class Worker(QtCore.QObject):
  5. """
  6. Implements a queue of tasks to be carried out in order
  7. in a single independent thread.
  8. """
  9. def __init__(self, app, name=None):
  10. super(Worker, self).__init__()
  11. self.app = app
  12. self.name = name
  13. def run(self):
  14. FlatCAMApp.App.log.debug("Worker Started!")
  15. self.app.worker_task.connect(self.do_worker_task)
  16. def do_worker_task(self, task):
  17. FlatCAMApp.App.log.debug("Running task: %s" % str(task))
  18. if 'worker_name' in task and task['worker_name'] == self.name:
  19. task['fcn'](*task['params'])
  20. return
  21. if 'worker_name' not in task and self.name is None:
  22. task['fcn'](*task['params'])
  23. return