【发布时间】:2019-07-27 21:28:30
【问题描述】:
我编写了一个调用 QTimer::singleShot 的函数来确保它不应该超时。但我得到了一个奇怪的结果。
int Test(int x)
{
QEventLoop loop;
QTimer timer;
QObject::connect(&timer, &QTimer::timeout, [&](){
loop.exit(x);
});
timer.start(7000);
QTimer::singleShot(10000, std::bind(&QEventLoop::exit, &loop, 3));
return loop.exec();
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << Test(1) << endl;
qDebug() << Test(2) << endl;
return a.exec();
}
我希望输出是 1 2 但实际输出是 1 3
【问题讨论】:
标签: qt