您的位置:首页 > 编程语言 > Qt开发

QT 多线程事件通讯

2016-01-11 16:14 465 查看

include

static const QEvent::Type MyEventType = (QEvent::Type)QEvent::registerEventType(QEvent::User+100);

class MyClass: public QThread

{

public:

MyClass();

~MyClass();

bool event(QEvent *event);

private:

class dd: public QThread

{

public:

dd();

~dd();

void wo();

virtual void run();

MyClass *mm ;

private:

};

dd::dd()

{

mm = NULL;

}

dd::~dd()

{

}

void dd::run()

{

wo();

}

void dd::wo()

{

//可以采用外部注入

if (mm == NULL)

{

mm = new MyClass();

static QThread *ee = new QThread();

mm->moveToThread(ee);

ee->start();

}

QCoreApplication::postEvent(mm,new QEvent(MyEventType));

}

MyClass::MyClass()

{

}

MyClass::~MyClass()

{

}

bool MyClass::event(QEvent *event)

{

if (event->type() == MyEventType)

{

int fddd = 34;

}

return 0;

}

其他线程地方定义

dd *ii= new dd();

ii->wo();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: