标题
- 1.多进程
- 2.多线程
- 3.常用方法
1.多进程
- (1)创建进程对象
QProcess::QProcess(QObject *parent = nullptr)- (2)启动进程去执行另外一个程序
void QProcess::start(const QString &command) //类似于system()/exec函数族
参数:command --》你要执行的另外一个程序的路径名- (3)杀死进程
void QProcess::kill()- (4)等待回收进程
bool QProcess::waitForFinished(int msecs = 30000)
参数:超时时间- (5)获取当前进程的运行状态
QProcess::ProcessState QProcess::state() const
返回值:
QProcess::NotRunning --进程还没有运行
QProcess::Starting --进程处于就绪态
QProcess::Running --进程处于执行态
2.多线程
原理:当你调用start方法开启一个线程的时候,run方法会被自动调用
- 第一步:
创建一个子类继承QThread,然后重写QThread中的run()方法
virtual void QThread::run()
//虚函数,线程的任务函数,创建线程需要完成的任务就靠它来实现
如何在QT工程中新增一个C++类
右键点击工程名–》add new–》选择C+±-》C++类 - 第二步:创建子类对象,启动线程
void QThread::start();
3.常用方法
(1)延时
[static] void QThread::sleep(unsigned long secs)
//单位秒
[static] void QThread::msleep(unsigned long msecs)
//毫秒
[static] void QThread::usleep(unsigned long usecs)
//微秒
(2)终止线程
void QThread::terminate()
(3)回收线程
bool QThread::wait(unsigned long time = ULONG_MAX)
//参数是超时时间