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