实现进程单例运行的几种方法

        这几天接手同事的一个代码,发现一个应用点击多次会弹出多个,但只有一个是真正在起作用;

说到这里,感觉应该看下tasklist,究竟是启动了多个,还是其他的没被顶掉。当时忘了查了,只是

仓促的打了补丁,现在贴下代码,做个笔记;

       有需要的同学可以直接拿去用:

开发环境:

        Qt 5.1.0

        高版本或许会出现小问题,没有测试过;


在此之前,先谈一下思路;

        要实现单例,就需要知道目前进程的状态,如果存在,那么不允许同ID的process重复启动;

1.使用QSystemSemaphore  lib;可在Create()失败时弹窗并退出ghost程序;

#include
#include
#include
#include
#include


#include "thread_datarecv.h"
#include "thread_datasend.h"
#include "com_config.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //设置程序使用字

你可能感兴趣的:(实现进程单例运行的几种方法)