QT-QIODevice内存泄露解决 发表于 2021-10-10 更新于 2023-11-01 分类于 QT 阅读次数: 当QIODevice在一个死循环(一般在子线程)内读写,会引发内存泄漏,如下代码123456QIODevice ioDevice;while (1) { // 其他操作 ioDevice.write(buf); // 此处会引发内存泄露,虽然增长比较缓慢 QThread::msleep(10);} 这个时候需要在循环中强制事件循环,即qApp->processEvents(),当然QEventLoop也可以,代码改为123456QIODevice ioDevice;while (1) { ioDevice.write(QByteArray()); QThread::msleep(10); qApp->processEvents(); // 强制事件循环} QSerialPort也会发生如上面这种情况发生内存泄漏,好像QT中基于QIODevice的类都是这样