当前位置: 代码迷 >> QT开发 >> qt线程编程有关问题,标准输入
  详细解决方案

qt线程编程有关问题,标准输入

热度:59   发布时间:2016-04-25 03:49:16.0
qt线程编程问题,标准输入
我的qt程序里需要调用外部exe程序执行,之前的做法是在mainwindow中开一个线程,由线程中创建一个process,之后在run函数里这样:

        process->start(exePath);
        if (!process->waitForFinished(30000)){
            std::cerr<<"Process TIMEOUT!"<<std::endl;
            process->kill();
        }
        emit processExit();


现在的问题是:
我的后台exe程序运行到某一个地方需要一个输入,这个输入想通过qt的主窗口UI输入,不能通过预先的参数表或配置文件进行配置,这时候知道QProcess有一个write函数,可是线程如果被waitForFinished是不是会block住?如果不加waitForFinished在run执行完以后线程就结束了,应该怎么办?加while(1)配合信号和槽吗?

注:后台exe和UI通过udp通信,在需要输入的时候后台可发消息让UI知道。
请高人指点,谢谢!

------解决方案--------------------
既然是后台程序,直接在主线程调起来运行,为何需要在子线程中控制,何况是通过udp通信的
  相关解决方案