Russian Qt Forum
Апреля 20, 2025, 06:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: 1 2 [3] 4   Вниз
  Печать  
Автор Тема: операции в слотах тормозят GUI  (Прочитано 25309 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #30 : Декабря 12, 2016, 14:44 »

а в воркере будут доступны переменные из главного класса, ну в каком я его запустил?

да, передай указатель и защити мутексом

Вот не надо херню советовать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #31 : Декабря 12, 2016, 14:51 »

Вообще "вынос в поток" - мода довольно молодая. Раньше как-то спокойно обходились вторичным циклом - и все работало в одной нитке
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #32 : Декабря 12, 2016, 14:55 »

Вообще "вынос в поток" - мода довольно молодая. Раньше как-то спокойно обходились вторичным циклом - и все работало в одной нитке
Ты имеешь ввиду processEvents?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #33 : Декабря 12, 2016, 16:44 »

а в воркере будут доступны переменные из главного класса, ну в каком я его запустил?

да, передай указатель и защити мутексом

Вот не надо херню советовать.

мутекс не нужен считаешь ?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #34 : Декабря 12, 2016, 18:50 »

Я считаю что не надо шарить указатели между классами, а тем более потоками.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #35 : Декабря 12, 2016, 19:35 »

QtConcurrent::Run еще не советовали?  Строит глазки
Записан

ArchLinux x86_64 / Win10 64 bit
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #36 : Декабря 12, 2016, 20:49 »

Я считаю что не надо шарить указатели между классами, а тем более потоками.

указатель на класс это плохо ?
http://doc.qt.io/qt-5/qsharedpointer.html тоже ненужен ?
а мутексы для того и нужны, чтобы иметь доступ к памяти из разных потоков
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #37 : Декабря 12, 2016, 21:15 »

qate, если можно обойтись без мютекса, то лучше это сделать. Давай попробую тебе объяснить аллегорически. Представь, что переменная - это женщина. Если женщиной владеет один мужчина, то это отлично. Если два, то могут быть конфликты (которые потом могут проходить по УК РФ). Но если мужчин становится слишком много, можно чего-нибудь подхватить не того. Тебе оно надо?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #38 : Декабря 12, 2016, 21:54 »

Давай попробую тебе объяснить аллегорически.

Боже мой, какие фантазии!

Расскажи - как обойтись без мутексов при доступе к общим данным из 2+ потоков ?

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #39 : Декабря 12, 2016, 22:08 »

Давай попробую тебе объяснить аллегорически.

Боже мой, какие фантазии!

Расскажи - как обойтись без мутексов при доступе к общим данным из 2+ потоков ?



Закрой глаза и я тебе расскажу. Только тсссссс. Закрыл? Не подглядывай! Легко обойтись без мютексов если.... НЕ ОБРАЩАТЬСЯ К ОБЩИМ ДАННЫМ ИЗ 2+ ПОТОКОВ!!! Эврика, мать его.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #40 : Декабря 12, 2016, 22:51 »

НЕ ОБРАЩАТЬСЯ К ОБЩИМ ДАННЫМ ИЗ 2+ ПОТОКОВ!!! Эврика, мать его.

ты вообще понимаешь глупость своего утверждения ?

общие данные на то и "общие", что к ним идет обращение их 2+ потоков, иначе они частные
Записан
megido
Гость
« Ответ #41 : Декабря 12, 2016, 23:40 »

у меня что-то стала зависать отрисовка гуи. через короткое время после запуска гуи перестает отрисовыватся.
программа работает,ничего не висит, я даже могу двигать слайдер(каторый не перемещается).
ошибок не выдает, если перезапустить процесс или нажать на какую нибудь кнопку  все станет нормально, но через секунд 5 опять перестанет отрисовывать.
данные для отрисовки идут,вижу в логах
 куда копать?
а я кажется понял, походу нельзя рисовать гуи в потоке, опять сигналы со слотами городить(((
« Последнее редактирование: Декабря 12, 2016, 23:57 от megido » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #42 : Декабря 13, 2016, 00:17 »

Зачем воркеру мутекс? Воркер при инициализации получит данные, настроит свои локальные переменные (это все в "главном" потоке еще), а потом start() и пошло поехало.

А вообще, по теме - непонятно, какая цель у автора? Какие-то слоты, треды, гуй теперь еще образовался...
Сделать то что надо?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #43 : Декабря 13, 2016, 08:28 »

ты вообще понимаешь глупость своего утверждения ?

общие данные на то и "общие", что к ним идет обращение их 2+ потоков, иначе они частные

Чувак, ты походу не понял мой пример. С одной женщиной должен быть только один мужчина. Тогда никаких проблем не будет. Если мужчин становится несколько, приходится предохраняться (но ощущения уже не те, да и защита не 100%), да еще и разбираться потом чьи дети и кто за них отвечает.
Я не говорю, что таких ситуаций стоит вообще сторониться (есть же проститутки и это нормально, наверное), но не стоит возводить это в привычку.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #44 : Декабря 13, 2016, 08:35 »

Цитировать
С одной женщиной должен быть только один мужчина.

А если женщины делят одного мужика - то это как? Мутексы нужны?  Подмигивающий
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: 1 2 [3] 4   Вверх
  Печать  
 
Перейти в:  


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