Как функцию загнать в отдельный поток
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
В Qt программирую недавно и столкнулся с такой проблемой — есть две функции в консольном приложении, которые надо вызвать, и чтобы они работали в фоне( параллельно), а как вызвать в отдельный поток, нигде не могу найти. Хотелось бы без использования классов. Спасибо.
Годятся ссылки на учебники и готовые примеры. В гугл не посылать — там много чего написано, но в основном про классы.
Используй
std::thread
из C++11. Или boost::thread.Компилировать с поддержкой многопоточности:
А не подскажите, где можно почитать про потоки в Qt. Сколько литературы находил, там везде начинается — создадим класс, а про простые функции ни слова. Хотелось бы знать, как отдельные потоки работают с переменными: местными и глобальными.
Дмитрий, почитайте
Qt Assistant -> QThread
.Спасибо.
как только добавляю строку в файл cam.pro
так сразу получаю ошибку : [Makefile] Error 3
помогите разобраться
Какие ошибки? А вообще, по-моему так нельзя... Попробуйте откомпилировать вручную.
Переписал вот так`
QT += core
QT -= gui
TARGET = cam4
CONFIG += console -pthread
CONFIG -= app_bundle -std=c++11 -std=gnu`
получаю ошибку при подключении библиотеки #include <thread>
ошибка: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Насколько я понимаю, это значит, что нужно включить поддержку
c++11
. Можно сделать это так:Или так:
( накопал в интеренете, так что не стесняемся пользоваться поисковиками ).
Правда на моей машине это не работает, компилируется, но не хочет запускаться:
Добавьте флаг
-pthread
.Всё! Совсем завяз, уже создал пустой проект, чтобы разобраться с этими потоками. Гугл уже снится, но там, похоже, у всех всё работает, а у меня нет. Вот проект упрощен до минимума.
файл.pro
Но от ошибки так и не могу избавиться, уже ткните носом — в чем моя ошибка?
#error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
Всё! Совсем завяз, уже создал пустой проект, чтобы разобраться с этими потоками. Гугл уже снится, но там, похоже, у всех всё работает, а у меня нет. Вот проект упрощен до минимума.
файл.pro
файл.срр
}
Но от ошибки так и не могу избавиться, уже ткните носом — в чем моя ошибка?
#error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
Я же сказал вам, что поддержка
c++11
включается так:То есть ваш
.pro
-файл будет выглядеть так:Так же нужно добавить, чтобы всё заработало:
В итоге, в
.pro
-файл нужно добавлять:Я так пробовал, таже ошибка.
Праканала вот такая конструкция.
QMAKE_CXXFLAFS += -std=c++ -pthread