当前位置: 技术问答>linux和unix
怎样在QT下实现多个线程?
来源: 互联网 发布时间:2017-02-19
本文导语: UINT Thread_list1(LPVOID lpParam) { CSampleView *pa; pa=CSampleViewlpParam; ... return 0; } UINT Thread_list2(LPVOID lpParam) { CSampleView *pa; pa=CSampleViewlpParam; ... return 0; } UINT Thread_list3(LPVOID lpParam) { CSampleView *pa; pa=CSampleViewlpParam; ... ...
UINT Thread_list1(LPVOID lpParam)
{
CSampleView *pa;
pa=CSampleViewlpParam;
...
return 0;
}
UINT Thread_list2(LPVOID lpParam)
{
CSampleView *pa;
pa=CSampleViewlpParam;
...
return 0;
}
UINT Thread_list3(LPVOID lpParam)
{
CSampleView *pa;
pa=CSampleViewlpParam;
...
return 0;
}
void CSampleView::Button1()
{
AfxBeginThread(Thread_list1,this,THREAD_PRIORITY_ABOVE_NORMAL);
}
void CSampleView::Button2()
{
AfxBeginThread(Thread_list2,this,THREAD_PRIORITY_NORMAL);
}
void CSampleView::Button3()
{
AfxBeginThread(Thread_list3,this,THREAD_PRIORITY_NORMAL);
}
以上为vc下实现多个线程的方法(如有不当,请帮忙指出),
如何在QT下像以上方法一样实现多个线程调用呢?
|
从QThread派生子类,重新实现run()方法。
|
QThread类本身就是接口,你把需要在子线程做的事情,放到run函数里。
需要用的时候就调用该QThread实例的start即可。
很简单啊,自己看mannual吧。
需要用的时候就调用该QThread实例的start即可。
很简单啊,自己看mannual吧。
|
(1)用VC6.0新建个Win32 Console Application工程
(2)Project Settings里面Link标签页面添加qtmain.lib qt-mt320.lib
Project Settings里面C/C++标签页面添加QT_THREAD_SUPPORT
(3)源代码文件(main.cpp):
#include
class MyThread : public QThread
{
public:
virtual void run();
};
void MyThread::run()
{
for( int count = 0; count
(2)Project Settings里面Link标签页面添加qtmain.lib qt-mt320.lib
Project Settings里面C/C++标签页面添加QT_THREAD_SUPPORT
(3)源代码文件(main.cpp):
#include
class MyThread : public QThread
{
public:
virtual void run();
};
void MyThread::run()
{
for( int count = 0; count