从 QThread 启动 QProcess [重复]
Posted
技术标签:
【中文标题】从 QThread 启动 QProcess [重复]【英文标题】:Starting QProcess from QThread [duplicate] 【发布时间】:2012-06-05 05:12:30 【问题描述】:我在 Qt 中使用 QThreads,我需要从 Qt 线程中启动命令行可执行文件并在线程上下文中运行相同的命令。
我已经使用了下面提到的代码,它似乎运行良好。但是,我想知道这种用法是否允许,因为我们是从 QThread 中启动 QProcess。
void Help_Menu_Thread::run()
Insert_Log("INFO::Help file referred by Admin");
QProcess HelpStart;
HelpStart.execute("c:\\windows\\hh.exe LPRS_help.chm");
HelpStart.close();
等待您的回复。
问候,
Saurabh G.
【问题讨论】:
【参考方案1】:只要您的主程序不必等待 qprocess 的输出或完成,就可以安全地使用这种方式。此 helpstart 进程将从作为其父进程的线程开始独立运行。但是如果您在调用HelpStart.close();
之前使用HelpStart.waitForFinished()
会更安全
【讨论】:
感谢您的及时回复。我只是觉得 HelpStart.execute() 会阻塞,直到其中调用的可执行文件终止。如果这是真的,那么上面的用法就是正确的。对吗? 它可能会阻止您的线程进程继续进行,但显然不会阻止您的主程序。以上是关于从 QThread 启动 QProcess [重复]的主要内容,如果未能解决你的问题,请参考以下文章