标题:线程内使用emit(),内存泄漏十分严重,哪里出了问题?有源代码
作者:勤为径也
日期:2018-01-01 22:35
内容:
一个十分简单的QT程序,线程启动后内存泄漏十分严重。
QT新手请高手指点。谢谢!!
//main.cpp
#include "test_thread.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Test_Thread w;
w.show();
return a.exec();
}
//test_thread.h
#ifndef TEST_THREAD_H
#define TEST_THREAD_H
#include
#include "ui_test_thread.h"
#include
#include
#include
#include
#include "mythread.h"
class Test_Thread : public QMainWindow
{
Q_OBJECT
public:
Test_Thread(QWidget *parent = 0);
~Test_Thread();
Ui::Test_ThreadClass ui;
QWidget *widget;
QVBoxLayout *layout;
QTextBrowser *textBrowser;
private:
void creat_Label();
QThread * t2 = new QThread();
MyObject * obj1 = new MyObject();
};
#endif // TEST_THREAD_H
//test_thread.cpp
#include "test_thread.h"
#include
Test_Thread::Test_Thread(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
widget = new QWidget;
layout = new QVBoxLayout;
textBrowser = new QTextBrowser;
layout-&g ..
#1 [angelus 01-02 09:32]
没看出来那里有内存泄漏!
一个while循环一直在线程里边跑,线程一直都没结束掉,那里来的内存泄漏!
#2 回 angelus 的帖子 [勤为径也 01-02 10:21]
angelus:没看出来那里有内存泄漏!
一个while循环一直在线程里边跑,线程一直都没结束掉,那里来的内存泄漏!
(2018-01-02 09:32)
就是。不知道啥原因。
我下载了另一个贴子(
QT多线程示例+一种通用高并发数据处理最简单思路 http://www.qtcn.org/bbs/read-htm-tid-58314.html)中的类似代码,也同样出现内存泄漏问题。
不知道是不是Qt的bug。
请高手指点!!!
#3 [小韩老师 01-02 10:33]
sendStr(QString);信号也是个函数定义,你需要定义这个形参,不然怎么将实参传输给槽函数
#4 回 勤为径也 的帖子 [angelus 01-03 16:17]
勤为径也:就是。不知道啥原因。
我下载了另一个贴子(
....... (2018-01-02 10:21)
你是怎么知道的内存出现泄漏的?
#5 回 angelus 的帖子 [勤为径也 01-03 16:36]
angelus:你是怎么知道的内存出现泄漏的? (2018-01-03 16:17)
任务管理器中,内存在不断增加啊。