• 5271阅读
  • 2回复

qt4多线程服务器中子线程的信号怎么发送出来 [复制链接]

上一主题 下一主题
离线succulent
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-05
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
qt4,用QTcpServer做一个多线程服务器,有三个类,一个是Dialog,一个是Server,一个是Thread
在thread的run函数中中emit SIGNAL,在server中connect到Dialog,在Dialog中定义SLOT
但老是提示段错误,请问这样的做法不对吗,有类似经验的朋友可以指点一下吗
离线succulent
只看该作者 1楼 发表于: 2008-11-05
简化一下,大概是这样子
类server里定义了函数A,函数A里声明了QThread thread
那么,想在类dialog里connect(thread,signal,this,SLOG)
其中这个thread怎么表达出来才行????


在类dialog里声明一个QServer server
然后server->A().thread,类似这样吗,不过这种形式肯定不行的,因为出错了,好几种形式都不行
哪位能告诉用哪种形式可以实现
离线vrcats
只看该作者 2楼 发表于: 2008-11-05
线程间使用signal/slots非常不安全。如果一定要使用,请用:

QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::DirectConnection)

原因是各个QThread如果没拿到执行时间,ProcessEvent(...)就不会处理他们排队的signal,这样singal就阻塞了
快速回复
限100 字节
 
上一个 下一个