【问题标题】:win32 threads in QtQt中的win32线程
【发布时间】:2011-02-13 05:46:19
【问题描述】:

有没有办法在 Qt 中创建一个线程而不使用子类化(即创建一个 QThread 类)?将数据发送到线程变得越来越困难。如果可以的话,是否可以在 Qt 中使用 win32 线程,有人可以给我一个例子吗?

谢谢。

【问题讨论】:

    标签: winapi qt


    【解决方案1】:

    您不一定要继承 QThread - 请参阅此处的讨论 http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/

    【讨论】:

      【解决方案2】:

      或者,如果您有许多简单的任务并希望以线程方式处理它们。 QRunnable 和 QThreadPool 提供了一种快速简便的方法,无需处理线程本身。

      【讨论】:

        【解决方案3】:

        如果你只想在另一个线程中运行一个函数,你应该检查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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多