Russian Qt Forum
Ноябрь 23, 2024, 05:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Аварийное завершение программы при использованиии Concurrent API  (Прочитано 20259 раз)
Kolobok
Гость
« Ответ #30 : Апрель 16, 2010, 20:25 »

А чем тогда QtConcurrentRun не устраивает.
Записан
AlekseyK
Гость
« Ответ #31 : Апрель 16, 2010, 20:39 »

Будем использовать QThread, но всё равно хороший тред получился: может кому пригодится.
Записан
SABROG
Гость
« Ответ #32 : Апрель 16, 2010, 21:23 »

Попробуй вызвать это перед запуском потока:

Код
C++ (Qt)
QThreadPool::globalInstance()->setMaxThreadCount(0);
 

Проблема в том, что это глобальная настройка и ты не сможешь запускать одновременно несколько потоков, даже если они делают разную работу.

Но как уже правильно сказали, если контейнер невозможно распараллелить, то возвращаемся к QtConcurrent::run(), он запускает только один экземпляр потока на одном ядре. Но и QThread в этом случае тоже хороший вариант, так как предоставляет сразу нужный каркас для работы с сигналами и слотами, в то время как QtConcurrent::run() изначально работает с статическими функциями, но также легко работает с методом любого класса, в том числе на базе QObject'a.
« Последнее редактирование: Апрель 16, 2010, 21:29 от SABROG » Записан
AlekseyK
Гость
« Ответ #33 : Апрель 16, 2010, 23:13 »

Но и QThread в этом случае тоже хороший вариант, так как предоставляет сразу нужный каркас для работы с сигналами и слотами, в то время как QtConcurrent::run() изначально работает с статическими функциями, но также легко работает с методом любого класса, в том числе на базе QObject'a.

Вот на нём и остановлюсь! Подмигивающий Каркас уже сделал. Благодарю всех за ваше время!
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.171 секунд. Запросов: 21.