如何使用cpp中的QThread使用一个对象运行同一类的两个线程?
Posted
技术标签:
【中文标题】如何使用cpp中的QThread使用一个对象运行同一类的两个线程?【英文标题】:how to run two threads of same class using one object using QThread in cpp? 【发布时间】:2016-06-18 13:56:53 【问题描述】:我有一个类,其成员函数是 VideoCapture 和 VideoWrite。 我想运行两个线程来并行执行这两个过程。 我观察到我们每次都需要创建一个类对象来运行不同的线程。 有什么办法不每次都创建不同的类对象吗?
【问题讨论】:
【参考方案1】:你不能真正在两个不同的线程中运行一个类——通常你将一个类实例移动到一个线程中。您可能最好创建两个单独的类,一个读取器/捕获类和一个写入器类,并将每个类放在自己的线程中......这非常简单有效。
如果您真的想将课程保持在一起,您可以使用 QtConcurrent 来实现这一点 - 取决于您的课程的工作方式。您可以在 qtconcurrent 中运行您的捕获/写入函数(或任何重处理器功能)以减轻繁重的工作 - 而事件处理/事件循环只能在主线程(甚至是一个单独的线程)中完成将其完全远离主线程)。见:
run member function qith QtConcurrent
和
QtConcurrent
【讨论】:
以上是关于如何使用cpp中的QThread使用一个对象运行同一类的两个线程?的主要内容,如果未能解决你的问题,请参考以下文章