Qt 4.8,Windows XP:
我有一个线程来管理我的 TCP 消息并在适当的时间打开/维护/关闭套接字。
这个相同的线程启动一个 QTimer,200 毫秒,在我的线程数据中定义,一旦(如果)套接字打开,它就会在我的线程类中泵出一个事件。所以计时器及其事件属于线程,据我所知,这个想法是最好的。
QTimer 超时事件通过属于线程的端口发送一条 TCP 消息,它是此特定硬件项目的保持活动消息。必须定期发送,否则设备会“消失”,这是不行的。
发送消息时,我收到此错误:
“QSocketNotifier:不能从另一个线程启用套接字通知”
据我所知,我从同一个线程发送消息,并期望任何信号等都由它拥有/处理等。
谁能告诉我我在这里缺少什么?
PS:消息已发送,设备确实保持活动状态...只是我在 Qt 错误控制台上收到此运行时错误,我非常担心因此而潜伏的内部问题。
在 OS X 10.6 下运行时不会出现该消息。我不知道为什么。