1

目前在我的 QT 代码中,我有这样的东西:

QByteArray tick_stream;
clntSocket->waitForReadyRead();
tick_stream = clntSocket->read(800);

在文档中它指出

此函数会阻塞,直到有新数据可供读取并且已发出 readyRead() 信号。该函数将在 mssecs 毫秒后超时;默认超时为 30000 毫秒

有什么办法可以让 waitForReadyRead 在我的阻塞应用程序中等到无穷大

4

1 回答 1

5

您可以-1用作参数来无限期等待。

clntSocket->waitForReadyRead(-1);

这是在派生套接字类的文档中,QIODevice但不在派生套接字类中。

但是,实际上您应该使用 Qt 事件循环并将插槽附加到readyRead信号而不是阻塞线程。

于 2013-08-12T08:05:02.147 回答