我对Qt不熟悉,请原谅问题的简单性,但是我对Qt线程有点困惑。 假设我有3个线程:默认GUI主线程和我自己创建的2个线程(称为WorkerThread)。 我的每个WorkerThread都继承自QThread,它们是永久线程,每隔一段时间就会唤醒并通过套接字发送数据,并在GUI元素上发布状态。如何最好地实现以下目标:1)允许GUI线程设置WorkerThread对象中可用的数据? 2)允许WorkerThread向GUI线程发送状态以供用户显示? 3)允许两个WorkerThread使用同一个套接字?
从文档中看来,当我创建WorkerThread对象时,它由创建线程拥有(除了run方法是新线程)。那么如何为新线程设置要执行的数据? 新线程使用的所有数据都必须是全局的吗?例如,我希望GUI允许用户选择每个WorkerThread发送的数据包类型。 我曾经认为,我会在WorkerThread中放一些槽,GUI线程将发出信号。 当WorkerThread对象收到SetPacketType信号时,它会设置成员变量,该变量在每次迭代时被引用。但是,阅读完文档后,我不确定是否应该这样做。如果WorkerThread对象由创建线程(在此情况下为GUI线程)拥有,则向其发送信号是否会跨越线程边界?
另外,共享套接字连接的正确技术是什么?
提前感谢。