• 2650阅读
  • 0回复

qt线程编程问题,标准输入 [复制链接]

上一主题 下一主题
离线horizonm
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-22
我的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知道。
请高人指点,谢谢!

快速回复
限100 字节
 
上一个 下一个