Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.06.2022
Сообщений: 2
1

QtConcurrent

27.06.2022, 22:25. Показов 688. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Изучаю Qt по Максу Шлее,
добрался до QtConcurrent. У Макса в книге есть пример использования этого фреймворка,
но у меня почему то вывод не такой получается. Подскажите пожалуйста в чем проблема

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <QCoreApplication>
#include <QtConcurrent/QtConcurrent>
 
QString myToUpper(const QString& str)
{
    return str.toUpper();
}
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    QStringList lst(QStringList() << "one" << "two" << "three");
    QFuture<QString> future =
            QtConcurrent::mapped(lst.begin(), lst.end(), myToUpper);
    future.waitForFinished();
    qDebug() << future.result();
 
    return a.exec();
}

Выводит только "ONE", а "TWO" и "THREE" нет.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2022, 22:25
Ответы с готовыми решениями:

QtConcurrent
Здравствуйте, хочу сделать сервер многопоточным, через concurrent. Делаю так void...

QtConcurrent::mapped
Заранее извиняюсь. Вопрос достаточно глупый, но всё же QStringList lst (QStringList ( ) &lt;&lt; &quot;one&quot;...

QtConcurrent и bind
Доброго времени суток. Есть вот такой незамысловатый код: #include &lt;QCoreApplication&gt; #include...

Не работает QtConcurrent
void Object::loadObjModel(const std::string filename) { .... std::string line; ...

Запуск QTimeLine в QtConcurrent
Всем привет! Возник следующий вопрос, пытаюсь сделать следующее, когда игрок убивает 2х злодеев,...

2
фрилансер
5827 / 5347 / 1097
Регистрация: 11.10.2019
Сообщений: 14,287
27.06.2022, 23:13 2
Лучший ответ Сообщение было отмечено brandonunder как решение

Решение

brandonunder,
C++ (Qt)
1
2
3
4
    QStringList lst{"one","two","three"};
    auto future = QtConcurrent::mapped(lst.begin(), lst.end(), myToUpper);
    future.waitForFinished();
    qDebug() << future.results();
1
0 / 0 / 0
Регистрация: 27.06.2022
Сообщений: 2
28.06.2022, 00:05  [ТС] 3
Спасибо Вам большое
0
28.06.2022, 00:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2022, 00:05
Помогаю со студенческими работами здесь

Использование в qtconcurrent::run() ui->
Доброго времени, форумчане! При сабже программа вылетает. Как быть? Возможно ли из лямбды послать...

О странностях QtConcurrent+QFuture+QFutureWatcher
Вот такой код работает: QString threadFunc() { return QString(&quot;This is result&quot;); } ...

Ошибки при работе потока в QtConcurrent
Добрый день. Столкнулся со странной проблемой. Программа должна обсчитать координаты для 2-х колец....

Вызов QtConcurrent приводит к зависанию GUI
Суть проблемы: есть две кнопки, по клику запускается выполнение простой процедуры в отдельном...

While loop & QtConcurrent - загрузка процессора > 100%
Вызываю в потоке функцию с бесконечным циклом, который так же в потоках вызывает другую функцию, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru