Russian Qt Forum
Ноябрь 23, 2024, 18:13
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
Необходимость нового потока для очередно
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Необходимость нового потока для очередно (Прочитано 18951 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Необходимость нового потока для очередно
«
Ответ #15 :
Декабрь 14, 2012, 17:46 »
Цитата: Bepec от Декабрь 14, 2012, 17:36
to Igors:
Ну дай, ну дай мне похвастаться
Я может быть ради этого момента на форуме регистрировался
Та на здоровье, это нормально
Цитата: Bepec от Декабрь 14, 2012, 17:36
PS и вообще мы на OPC переходим. Хоть и дороговат, но от головной боли по проектированию избавляет.
Не слышал ни о каком OPC, но не разделяю Вашего оптимизма, то палка о двух концах.Сегодня без проектирования - завтра без программистов вообще. А чего - девочки дешевле (+ имеют массу др. достоинств)
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #16 :
Декабрь 14, 2012, 17:52 »
Не в том смысле. OPC избавляет от головной боли распределённого доступа к объектам
Ну и унификацию позволяет произвести малой кровью. А программисты всё равно нужны (те, которые OPC изучат, ибо он в России почти не применяется)
Записан
brucemax
Гость
Re: Необходимость нового потока для очередно
«
Ответ #17 :
Декабрь 14, 2012, 18:20 »
Цитата: Bepec от Декабрь 14, 2012, 17:36
Я бы посоветовал, да незнаю задачи и устройств
У меня к примеру охранка.Там скорость обработки важна + наивысший приоритет тревог. А у тебя я незнаю что
Мониторинг и частичное управление промышленными станциями (не могу сказать какими). На каждой где-то по 4-5 датчиков. Но их опрашивает устройство на той стороне и уже оно формирует пакет и присылает его мне. Критичность по времени не сильно важна да и отправка как я сказал не часто. Теперь посоветуешь?
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #18 :
Декабрь 14, 2012, 18:45 »
Время не важно. Значит что? Значит спокойно используем 1 поток на приём пакетов, 1 поток на обработку/сохранение результатов. Плюс основной поток на отображение информации.
Принимаем пакет (протокол твой соответственно должен гарантировать доставку), записываем в очередь на обработку, принимаем следующий.
Другой поток стоит на семафоре. Как только появляются данные, обрабатывает (хзкак, опять таки твоё дело) и отдаёт их на откуп модели и снова стоит ждёт.
Модель уже отображает данные и/или записывает в БД.
PS у тебя получается система сбора информации. Так же ты упоминал "частичное управление". Но это уже на твой откуп, подробностей не даёшь
Записан
brucemax
Гость
Re: Необходимость нового потока для очередно
«
Ответ #19 :
Декабрь 17, 2012, 09:52 »
Спасибо!
Цитата: Bepec от Декабрь 14, 2012, 18:45
...записываем в очередь на обработку..
В программном эквиваленте это например пустить сигнал,соединённый с объектом из потока обработки с указанием Qt::QueuedConnection?
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #20 :
Декабрь 17, 2012, 09:54 »
Как вариант да. Будет обычная очередь.
Хотя мне больше нравится обычное добавление в конец контейнера. Что по сути будет та же очередь
PS хотя у тебя требований к скорости нет, значит и сигналы пойдут
(я им не доверяю
)
Записан
brucemax
Гость
Re: Необходимость нового потока для очередно
«
Ответ #21 :
Декабрь 20, 2012, 12:26 »
А корректно ли делать moveToThread после того как поток уже стартовал? Просто в примерах от Qt видел, что они сначала пихают объект в поток, а уже потом этот поток стартуют..
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #22 :
Декабрь 20, 2012, 13:20 »
С одной стороны плохо, ибо не все классы перенесут такое без криков. С другой стороны так можно делать, если класс не имеет ограничений.
Записан
mutineer
Гость
Re: Необходимость нового потока для очередно
«
Ответ #23 :
Декабрь 20, 2012, 13:21 »
В доке противопоказаний нет
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #24 :
Декабрь 20, 2012, 13:23 »
Что-то типа SQLDatabase или SQLquery, не помню точно, будет требовать новое подключение к базе при переносе в другой поток. Т.е. фактически умирать
Записан
brucemax
Гость
Re: Необходимость нового потока для очередно
«
Ответ #25 :
Декабрь 20, 2012, 15:05 »
Цитата: Bepec от Декабрь 20, 2012, 13:20
С одной стороны плохо, ибо не все классы перенесут такое без криков. С другой стороны так можно делать, если класс не имеет ограничений.
Пока не знаю, как определить имеет ли класс ограничения, но у меня подключения возникают во время работы и чтобы кинуть сокет в обслуживающий поток без данного действия не обойтись... ммм.. Хотя обойтись.. сделав в том потоке объект, один из слотов которого будет клепать сокеты.. и эмитить ему сигнал из главного потока. Или имея дело с сокетами (которые, надеюсь не имеют ограничений) не стоит париться и так сойдёт?
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #26 :
Декабрь 20, 2012, 15:16 »
ХЗ на всё. Сокеты бывают разные, черные, белые, красные, тисипишные и эскуэльные, удепешные и кутешные.
Записан
brucemax
Гость
Re: Необходимость нового потока для очередно
«
Ответ #27 :
Декабрь 20, 2012, 16:13 »
Цитата: Bepec от Декабрь 20, 2012, 15:16
ХЗ на всё. Сокеты бывают разные, черные, белые, красные, тисипишные и эскуэльные, удепешные и кутешные.
Записан
Bepec
Гость
Re: Необходимость нового потока для очередно
«
Ответ #28 :
Декабрь 20, 2012, 16:43 »
А зачем вам сокеты в разных потоках?
Записан
brucemax
Гость
Re: Необходимость нового потока для очередно
«
Ответ #29 :
Декабрь 20, 2012, 17:55 »
Цитата: Bepec от Декабрь 20, 2012, 16:43
А зачем вам сокеты в разных потоках?
А где я написал, что они у меня в разных потоках?
Записан
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...