QTcpServer - 如何多线程 - 例子不好

时间:2015-03-16 22:48:59

标签: qt signals-slots qthread qtcpsocket qtcpserver

我试图让QTcpServer为每个连接启动一个单独的线程。有可用的示例代码:http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html

此代码通过继承QThread来工作。如果我基于该示例构建我的代码,我很快就会遇到" QObject:无法为不同线程中的父级创建子级。"警告。

有来自Qt的文档建议不要对QThread进行子类化,因为那是"做错了":http://blog.qt.io/blog/2010/06/17/youre-doing-it-wrong/

所以,我的问题是,如果Qt提供的示例代码直接违反了Qt建议的做法,那么有没有正确方法的例子呢?到目前为止,我发现的任何一个例子都是QThread的子类。

1 个答案:

答案 0 :(得分:0)

Qt是一款正在开发的产品。并且,我认为,继承QThread仍被视为法律实践。这只是一种较老的技术,所以旧的例子都使用它。

您的问题似乎是跨越不同线程的QObject的错误用法,而不是QThread子类化。首先尝试找到发出警告的代码。