如何在cpp中使用QThread使用一个对象运行同一类的两个线程?

时间:2016-06-18 13:56:53

标签: c++ qt qthread

我有一个类,其成员函数是VideoCapture和VideoWrite。 我想运行两个线程来并行执行这两个过程。 我曾经观察到我们每次都需要创建一个类对象来运行不同的线程。 有没有办法不创建每次不同的类对象?

1 个答案:

答案 0 :(得分:2)

您无法在两个不同的线程中运行类 - 通常是将类实例移动到线程中。你可能更擅长制作两个独立的类,一个读者/捕获类和一个编写者类,并将每个类放在他们自己的线程中...这非常简单有效。

如果您真的希望将课程保持在一起,则可以使用QtConcurrent来实现此目的 - 取决于您的课程如何工作。您可以在qtconcurrent中运行捕获/写入函数(或任何重处理器函数)来解决繁重的问题 - 而事件处理/事件循环可以在主线程中完成(或者甚至可以在单独的线程中完成将其完全移离主线程)。参见:

run member function qith QtConcurrent

QtConcurrent