Приветствую всех,
В моем приложении QT я использую OpenMP для распараллеливания циклов. В цикле я хочу обновить значения индикатора выполнения текущего QMainWindow.Следующий фрагмент кода показывает, как я пытаюсь сделать это:
#ifdef OPENMP_ENABLE
#pragma omp parallel for
#endif
for (int i = 0; i < endIndex; i++) {
getMainWindow()->setProgress(currProg); //change the value of QProgressBar
QApplication::processEvents(); //update events,widgets
//Do some processing
}
Здесь getMainWindow () -> SetProgress () метод просто изменить значения QProgressbar, прикрепленного к строке состояния QMainWindow.
При компиляции и запуске приложения с включенным OpenMP выдается следующая ошибка:
Ошибка ASSERT в QCoreApplication :: sendEvent: "Невозможно отправить события объектам, принадлежащим другомутекущий поток 161975a0. Получатель 'MainWindowClass' (типа 'MainWindow') создан в потоке 13d78f8 ", файл kernel \ qcoreapplication.cpp, строка 348
Любые советы, как вызвать QApplication ::processEvents () с OpenMP?
Заранее спасибо.