Russian Qt Forum
Ноябрь 23, 2024, 03:50
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
операции в слотах тормозят GUI
Страниц:
1
2
[
3
]
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: операции в слотах тормозят GUI (Прочитано 24602 раз)
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: операции в слотах тормозят GUI
«
Ответ #30 :
Декабрь 12, 2016, 14:44 »
Цитата: qate от Декабрь 12, 2016, 14:39
Цитата: megido от Декабрь 12, 2016, 11:35
а в воркере будут доступны переменные из главного класса, ну в каком я его запустил?
да, передай указатель и защити мутексом
Вот не надо херню советовать.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: операции в слотах тормозят GUI
«
Ответ #31 :
Декабрь 12, 2016, 14:51 »
Вообще "вынос в поток" - мода довольно молодая. Раньше как-то спокойно обходились вторичным циклом - и все работало в одной нитке
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: операции в слотах тормозят GUI
«
Ответ #32 :
Декабрь 12, 2016, 14:55 »
Цитата: Igors от Декабрь 12, 2016, 14:51
Вообще "вынос в поток" - мода довольно молодая. Раньше как-то спокойно обходились вторичным циклом - и все работало в одной нитке
Ты имеешь ввиду processEvents?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qate
Супер
Offline
Сообщений: 1177
Re: операции в слотах тормозят GUI
«
Ответ #33 :
Декабрь 12, 2016, 16:44 »
Цитата: Пантер от Декабрь 12, 2016, 14:44
Цитата: qate от Декабрь 12, 2016, 14:39
Цитата: megido от Декабрь 12, 2016, 11:35
а в воркере будут доступны переменные из главного класса, ну в каком я его запустил?
да, передай указатель и защити мутексом
Вот не надо херню советовать.
мутекс не нужен считаешь ?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: операции в слотах тормозят GUI
«
Ответ #34 :
Декабрь 12, 2016, 18:50 »
Я считаю что не надо шарить указатели между классами, а тем более потоками.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: операции в слотах тормозят GUI
«
Ответ #35 :
Декабрь 12, 2016, 19:35 »
QtConcurrent::Run еще не советовали?
Записан
ArchLinux x86_64 / Win10 64 bit
qate
Супер
Offline
Сообщений: 1177
Re: операции в слотах тормозят GUI
«
Ответ #36 :
Декабрь 12, 2016, 20:49 »
Цитата: Пантер от Декабрь 12, 2016, 18:50
Я считаю что не надо шарить указатели между классами, а тем более потоками.
указатель на класс это плохо ?
http://doc.qt.io/qt-5/qsharedpointer.html
тоже ненужен ?
а мутексы для того и нужны, чтобы иметь доступ к памяти из разных потоков
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: операции в слотах тормозят GUI
«
Ответ #37 :
Декабрь 12, 2016, 21:15 »
qate, если можно обойтись без мютекса, то лучше это сделать. Давай попробую тебе объяснить аллегорически. Представь, что переменная - это женщина. Если женщиной владеет один мужчина, то это отлично. Если два, то могут быть конфликты (которые потом могут проходить по УК РФ). Но если мужчин становится слишком много, можно чего-нибудь подхватить не того. Тебе оно надо?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qate
Супер
Offline
Сообщений: 1177
Re: операции в слотах тормозят GUI
«
Ответ #38 :
Декабрь 12, 2016, 21:54 »
Цитата: Пантер от Декабрь 12, 2016, 21:15
Давай попробую тебе объяснить аллегорически.
Боже мой, какие фантазии!
Расскажи - как обойтись без мутексов при доступе к общим данным из 2+ потоков ?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: операции в слотах тормозят GUI
«
Ответ #39 :
Декабрь 12, 2016, 22:08 »
Цитата: qate от Декабрь 12, 2016, 21:54
Цитата: Пантер от Декабрь 12, 2016, 21:15
Давай попробую тебе объяснить аллегорически.
Боже мой, какие фантазии!
Расскажи - как обойтись без мутексов при доступе к общим данным из 2+ потоков ?
Закрой глаза и я тебе расскажу. Только тсссссс. Закрыл? Не подглядывай! Легко обойтись без мютексов если.... НЕ ОБРАЩАТЬСЯ К ОБЩИМ ДАННЫМ ИЗ 2+ ПОТОКОВ!!! Эврика, мать его.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
qate
Супер
Offline
Сообщений: 1177
Re: операции в слотах тормозят GUI
«
Ответ #40 :
Декабрь 12, 2016, 22:51 »
Цитата: Пантер от Декабрь 12, 2016, 22:08
НЕ ОБРАЩАТЬСЯ К ОБЩИМ ДАННЫМ ИЗ 2+ ПОТОКОВ!!! Эврика, мать его.
ты вообще понимаешь глупость своего утверждения ?
общие данные на то и "общие", что к ним идет обращение их 2+ потоков, иначе они частные
Записан
megido
Гость
Re: операции в слотах тормозят GUI
«
Ответ #41 :
Декабрь 12, 2016, 23:40 »
у меня что-то стала зависать отрисовка гуи. через короткое время после запуска гуи перестает отрисовыватся.
программа работает,ничего не висит, я даже могу двигать слайдер(каторый не перемещается).
ошибок не выдает, если перезапустить процесс или нажать на какую нибудь кнопку все станет нормально, но через секунд 5 опять перестанет отрисовывать.
данные для отрисовки идут,вижу в логах
куда копать?
а я кажется понял, походу нельзя рисовать гуи в потоке, опять сигналы со слотами городить(((
«
Последнее редактирование: Декабрь 12, 2016, 23:57 от megido
»
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: операции в слотах тормозят GUI
«
Ответ #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
Сообщений: 5876
Жаждущий знаний
Re: операции в слотах тормозят GUI
«
Ответ #43 :
Декабрь 13, 2016, 08:28 »
Цитата: qate от Декабрь 12, 2016, 22:51
ты вообще понимаешь глупость своего утверждения ?
общие данные на то и "общие", что к ним идет обращение их 2+ потоков, иначе они частные
Чувак, ты походу не понял мой пример. С одной женщиной должен быть только один мужчина. Тогда никаких проблем не будет. Если мужчин становится несколько, приходится предохраняться (но ощущения уже не те, да и защита не 100%), да еще и разбираться потом чьи дети и кто за них отвечает.
Я не говорю, что таких ситуаций стоит вообще сторониться (есть же проститутки и это нормально, наверное), но не стоит возводить это в привычку.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: операции в слотах тормозят GUI
«
Ответ #44 :
Декабрь 13, 2016, 08:35 »
Цитировать
С одной женщиной должен быть только один мужчина.
А если женщины делят одного мужика - то это как? Мутексы нужны?
Записан
ArchLinux x86_64 / Win10 64 bit
Страниц:
1
2
[
3
]
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...