Функция потока вызывается только один раз. Мне нужно, чтобы он работал в фоновом режиме - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть задача бегуна (что-то похожее на бегун аудрино). В функции запуска у меня есть следующий код. Когда я запускаю этот код, я обнаруживаю, что EModule::doRun() вызывается только один раз. На самом деле я хочу, чтобы поток продолжал работать в фоновом режиме и установить флаг в downloadCompleted. Как мне достичь этого? Нужно ли отключать нить?

m_downloadThread = std::thread(&EModule::doRun, this, true,
                [this](bool value) {
                this->setDownloadCompleted(value);
});
if (isDownloadCompleted()) {
    completionFunc(m_downloadSpeed >= m_testThresholdInBps);
}
...