吾非善类 2022-01-18 17:07 采纳率: 0%
浏览 52

QT中槽函数创建进程后,多次创建后导致qt的主进程异常退出

问题遇到的现象和发生背景

这个问题不是直接创建进程退出后就显示出来,而是在创建了好几次后然后报错

问题相关代码,请勿粘贴截图
void UploadSlot::onClick() {
    /*
    wchar_t* nowComm = (wchar_t*)malloc(sizeof(wchar_t)*(12 + wcslen(selfNode->FilePath)+2));
    wcscpy(nowComm, L"python pySrc/getData.py");
    wcscat(nowComm, selfNode->FilePath);
    //进行上传
    selfNode->uploadStat = 1;
    selfNode->orderStat = 1;
    */
    selfBut->setEnabled(FALSE);
    /*
    ((QLabel*)(tableWeightValueP[selfIndex][UPLOAD_STAT_INDEX]))->\
        setText(*selfUploadTrue);
    ((QLabel*)(tableWeightValueP[selfIndex][ORDER_STAT_INDEX]))->\
        setText(*selfOrderTrue);
    */
    selfUpLoadStat->setText(*selfOrderTrue);
    selfOrderStat->setText(*selfUploadTrue);
    QString fileNameQ = selfFoundWeight->text();
    wchar_t fileNameW[200];
    memset(fileNameW, 0x00, sizeof(wchar_t) * 200);
    fileNameQ.toWCharArray(fileNameW);
    //进行上传
    wchar_t* nowComm = (wchar_t*)malloc(sizeof(wchar_t)*(12 + wcslen(selfPath) + wcslen(fileNameW) + 8));
    wcscpy(nowComm, L"python pySrc/getData.py ");
    wcscat(nowComm, selfPath);
    wcscat(nowComm, L"\\");
    wcscat(nowComm, fileNameW);
    STARTUPINFO si = { sizeof(si) };
    PROCESS_INFORMATION pi;
    CreateProcess(NULL, nowComm, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    CloseHandle(pi.hThread);
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    //QProcess* a = new QProcess();
    //a->start(QString::fromWCharArray(nowComm));
    //system(nowComm);
    
};

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

5条回答 默认 最新

  • 於黾 2022-01-18 17:21
    关注

    当你使用多线程时,要注意线程安全
    多个线程不要同时访问同一个资源,比如文件、链表等,要加线程锁。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月18日

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码