QThread vs std :: thread

Eu vi tópicos diferentes em "pthread vs std :: thread" e "QThread vs pthread", mas nenhum em "std :: thread vs QThread".

Eu tenho que programar um software para dirigir uma impressora 3D e preciso usar threads. Haverá um thread que verificará a segurança constantemente, outro para executar o processo de impressão, alguns para acionar cada componente de hardware (movimento, jato, ...) separadamente, etc ... O programa é desenvolvido para Windows com C ++ 11 / Qt.

Primeiro eu queria usar o QThread, masparece-me que o QThread não permite que você faça o mesmo que std :: thread, por exemplo, ao ler "C ++ Concurrency in Action" de Anthony Williams, vi que era possível solicitar a um std :: thread para executar uma função de outro segmento, fazendo algo comostd::thread t1(&Class::function, this, ...); o que não parece ser possível com o QThread.

O mecanismo que eu mais gostaria de ter é uma maneira de dizer se eu quero que uma função seja executada no thread atual ou em outro thread.

Qual você escolheria fazer isso e por quê?

questionAnswers(3)

yourAnswerToTheQuestion