Best Direction on Spawning Process Async
cka via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Sep 16 14:25:30 PDT 2015
On Wednesday, 16 September 2015 at 16:30:46 UTC, Mike McKee wrote:
> This really shows the beauty and simplicity of the D language
> compared to C++. Check this out in Qt/C++:
>
> http://stackoverflow.com/questions/32593463/spawn-async-qprocess-from-dynamic-library-peek-output-until-done
>
> ...see how much nicer the D version is here that Ali did,
> versus the Qt/C++ technique.
Here is an alternative Qt sample to handle the output of a
process line by line and to get notified when it finishes:
#include <QCoreApplication>
#include <QProcess>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QProcess scanner;
QObject::connect(&scanner, &QProcess::readyRead, [&] {
while (!scanner.atEnd()) {
auto line = scanner.readLine();
// process line
}
});
// select the QProcess::finished(int) overload
void (QProcess::*finishedSignal)(int) = &QProcess::finished;
QObject::connect(&scanner, finishedSignal, [] (int) {
// proces finished
QCoreApplication::quit();
});
scanner.start("avscanner");
return a.exec();
}
More information about the Digitalmars-d-learn
mailing list