有没有办法在不使用子类化(即制作QThread类)的情况下在Qt中创建线程?将数据发送到线程变得越来越困难。是否有可能在Qt中使用win32线程,如果有人可以给我一个如何的例子?
感谢。
答案 0 :(得分:4)
您不一定要将QThread子类化 - 请参阅此处的讨论http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/
答案 1 :(得分:1)
或者,如果您有许多简单的任务,并希望以线程方式处理它们。 QRunnable
和QThreadPool
提供了一种快速简便的方法,无需处理线程本身。
答案 2 :(得分:0)
如果你只想在另一个线程中运行一个函数,你应该检查QT Concurrent Namespace.
以下示例将在单独的线程中运行函数'aFunction()',并且不会在调用函数的行上阻塞。当然,有一些机制可以理解函数何时结束,以获得结果,等待它。
void aFunction(int arg1, double arg2, const QString &string);
int integer = ...;
double floatingPoint = ...;
QString string = ...;
QtConcurrent::run(aFunction, integer, floatingPoint, string);