Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
1

многопоточность не работает

01.12.2017, 15:29. Показов 1555. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Пытаюсь вызвать многопоточность
C++ (Qt)
1
2
3
4
5
6
QVector<double> Perebor; //перебор  значений стратегии
   for (double i=5;i<100;i=i+1)
   {
       Perebor.append(i);
   }
   QFuture<void> Perebor2 = QtConcurrent::map(Perebor, StrategyCod);
StrategyCod()-функция класса MainWindow.
Вызываю QFuture<void> Perebor2 в файле mainwindow.cpp
Выдает ошибку:
C:\Qt\Qt5.9.2\5.9.2\mingw53_32\include\QtConcurrent\qtconcurrentmapkernel.h:69: ошибка: no match for call to '(QtConcurrent::MemberFunctionWrapper1<void, MainWindow, double>) (double&)'
map(*it);
Скажите пожалуйста, как запустить?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2017, 15:29
Ответы с готовыми решениями:

Не работает многопоточность
Добрый день. Решил заняться многопоточнстью на C#, но что-то пошло не так - она не работает. ...

Lock не работает (многопоточность)
Здравствуйте. Есть такой код. namespace mysync { class Program { static void...

Не работает многопоточность в libcurl
Всем привет. Пытаюсь сделать прогу работающую с двумя потоками, которая грузит страницу гугла в два...

Не правильно работает многопоточность
Прошу помочь с проблемой, очень долго не могу разобраться, приложение - гонки машин(picturebox)...

21
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
01.12.2017, 15:55 2
Что опять? Ну обсуждали же уже это. И примеры давались.
Функция-член не подходит сюда.
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 15:59  [ТС] 3
Да, обсуждали при вызове функции из другого класса. Но сейчас то ситуация изменилась, можно просто вызывать нужные функции без объекта класса. Да и примерах я такое увидел.
0
icpu
01.12.2017, 17:04
  #4

Не по теме:

*грязно выругался на 20 нарушений*

0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 17:14  [ТС] 5
мне раньше помог вариант с лямбда функцией. но тогда иначе не получалась обратиться к классу. сейчас этого затруднения нет. должно ведь работать как в документации? или опять писать лябдафункцию?
0
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
01.12.2017, 17:15 6
А что изменилось?
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 17:20  [ТС] 7
я же говорю, что тогда была трудность с коппиляцией объекта класса. сейчас его вообще нет, следоватьльно и трудностей поменьше. да и тут у людей все работает при простой записи без лямбды.
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
01.12.2017, 17:32 8
Цитата Сообщение от Михаиллллллл Посмотреть сообщение
у людей все работает
Там не указано, что функции в классе.
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 17:44  [ТС] 9
Помогите пожалуйста написать лямбду. Не совсем понимаю как параметру присвоить нужное значение вектора Perebor
C++ (Qt)
1
QFuture<void> Perebor2 = QtConcurrent::map(Perebor,[&](const double& d){ StrategyCod(d);});
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
01.12.2017, 18:08 10
Какому параметру? Он целиком передаётся.
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 18:17  [ТС] 11
Я понимаю. И в этом вижу некоторую трудность. Что нужно указать в () в StrategyCod(d)? И как правильно указать параметр лямдафункции?
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
01.12.2017, 19:07 12
Какой элемент в массиве, такой и параметр у функции.
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 16:28  [ТС] 13
Да это я понимаю. Как правильно прописать [&](const double& d){ StrategyCod(d);});?
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
02.12.2017, 17:18 14
Смотря к чему относятся вызывающая функция и StrategyCod().
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 17:19  [ТС] 15
она прописана в классе MainWindow. Пытаюсь вызвать метод в mainwindow.cpp в слоте кнопки.
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
02.12.2017, 17:25 16
Так попробуй:
C++
1
[this]
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 17:30  [ТС] 17
Нажал кнопку, программа вылетела
C++ (Qt)
1
QFuture<void> Perebor2 = QtConcurrent::map(Perebor,[this](const double& d){ StrategyCod(d);});
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
02.12.2017, 18:02 18
Вектор этот существует на уровне класса или нет?
0
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 18:05  [ТС] 19
Нет.
0
7800 / 6565 / 2986
Регистрация: 14.04.2014
Сообщений: 28,702
02.12.2017, 18:20 20
Лучший ответ Сообщение было отмечено Михаиллллллл как решение

Решение

Значит, исправляй. Про это уже говорили, что он должен существовать на уровне программы, а не в течение вызова функции.
1
02.12.2017, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2017, 18:20
Помогаю со студенческими работами здесь

Как работает железо и многопоточность?
Пишу первую игру на C# и соответственно DirectX 9 for managed Code Сам директ начал осваивать...

Не так работает многопоточность сервера и клиента
Здравствуйте! Мне дана следующая задача. Сервер создаёт n процессов, указывая для каждого время его...

Не работает многопоточность - Страница находится в ожидании
&lt;?php // создаем оба ресурса cURL $ch1 = curl_init(); $ch2 = curl_init(); // устанавливаем...

Java пишу мини paint не работает многопоточность
Здравствуйте, форумчане! Встала такая проблема: пишу мини-графический редактор. Вот часть кода:...


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

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