我是 Qt 的新手,所以请原谅这个问题的简单性,但我对 Qt 线程有点困惑。假设我有 3 个线程:主要的默认 GUI 线程和我自己创建的 2 个线程(称为 WorkerThread)。我的每个 WorkerThreads 都继承自 QThread 并且是永久线程,它们经常唤醒并将数据发送到套接字并在 GUI 元素上发布状态。1) 允许 GUI 线程在 WorkerThread 对象中设置 WorkerThread 线程可以使用的数据的最佳方法是什么?2) 允许 WorkerThread 向 GUI 线程发送状态以显示给用户?3) 允许两个 WorkerThreads 使用同一个套接字?
从文档看来,当我创建一个 WorkerThread 对象时,它由创建线程拥有(除了作为新线程的 run 方法)。那么如何为新线程设置数据来执行呢?新线程使用的所有数据都必须是全局的吗?例如,我希望 GUI 允许用户为每个 WorkerThreads 选择一种数据包类型,以便在他们醒来时发送。我曾假设我会在 WorkerThread 中放置 GUI 线程将发出信号的一些插槽。当 WorkerThread 对象接收到 SetPacketType 的信号时,它将设置一个成员变量,run 方法在每次迭代时引用该变量。但是在阅读了文档之后,我不确定这是不是这样。如果 WorkerThread 对象由创建线程(在本例中为 GUI 线程)拥有,则向其发送信号不会
另外,跨线程共享套接字连接的正确技术是什么?
提前致谢。