1. 定义一个计数器,用于记录定时器的执行次数;消弯
2. 创建QTimer对象,并设置定时器的时间间隔冲团;
3. 将计数器与QTimer对象连接,在定时器超时时,计数器加1;
4. 在定时器超时时,判断计数器是否达到限定次数,如果达到,则停止定拿判闷时器,否则继续执行定时器;
5. 最后调用QTimer::start()函数,开始定时器的计时。
在windows下互斥体有个唯一的key,通过key去创建互斥体,如果这巧腔薯个互斥体已经存在了,那么通过GetLastError能获取到这个信息,表示程序已经在运行了。互斥体还有个优点圆裤就是在程序关闭时孝者,会自动释放掉!
#include "mainwindow.h"
#include <QApplication>
#include <windows.h>
int main(int argc, char *argv[]){
QApplication a(argc, argv)
QString strKey = "mykey"
LPCWSTR wstrKey = strKey.toStdWString().c_str()
HANDLE hMetex = CreateMutex(NULL,FALSE,wstrKey)
if(GetLastError() == ERROR_ALREADY_EXISTS){
//如果互斥体存在,说明程序已经有实例在运行了,释放资源然后关闭本实例
if(hMetex){
CloseHandle(hMetex)
hMetex = NULL
}
return -1
}
MainWindow w
w.show()
return a.exec()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)