我有一个显示表格、计算数据等的 QWidget TableView 类...
在它的构造函数中,我启动了该类的 FortuneServer 服务器:
FortuneServer::FortuneServer(QObject *parent)
: QTcpServer(parent)
{
...
此类在 FortuneServer::incomingConnection 上启动一个新线程,如下所示:
FortuneThread::FortuneThread(int socketDescriptor, const QString &fortune, QObject *parent)
: QThread(parent), socketDescriptor(socketDescriptor), text(fortune)
{
}
void FortuneThread::run()
{
QTcpSocket tcpSocket;
if (!tcpSocket.setSocketDescriptor(socketDescriptor)) {
emit error(tcpSocket.error());
cout<<"socket error"<<endl;
return;
}
tcpSocket.waitForReadyRead(10000);
// this where sockets opens and waits for incoming data...
我需要执行以下操作:
我需要连接从客户端在此线程中获得的字符串,与 TableView 类中的某个函数计算另一个字符串并将其返回到该线程并将其发送到客户端。
如果我从线程使用发射,我如何让线程等待结果?
这是如何正确完成的?
泰