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

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

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

Сообщений: 11445


Просмотр профиля
« Ответ #15 : Декабрь 14, 2012, 17:46 »

to Igors:
Ну дай, ну дай мне похвастаться Веселый Я может быть ради этого момента на форуме регистрировался Веселый
Та на здоровье, это нормально  Улыбающийся

PS и вообще мы на OPC переходим. Хоть и дороговат, но от головной боли по проектированию избавляет.
Не слышал ни о каком OPC, но не разделяю Вашего оптимизма, то палка о двух концах.Сегодня без проектирования - завтра без программистов вообще. А чего - девочки дешевле (+ имеют массу др. достоинств)
Записан
Bepec
Гость
« Ответ #16 : Декабрь 14, 2012, 17:52 »

Не в том смысле. OPC избавляет от головной боли распределённого доступа к объектам Улыбающийся
Ну и унификацию позволяет произвести малой кровью. А программисты всё равно нужны (те, которые OPC изучат, ибо он в России почти не применяется) Улыбающийся
Записан
brucemax
Гость
« Ответ #17 : Декабрь 14, 2012, 18:20 »

Я бы посоветовал, да незнаю задачи и устройств Улыбающийся У меня к примеру охранка.Там скорость обработки важна + наивысший приоритет тревог. А у тебя я незнаю что Улыбающийся

Мониторинг и частичное управление промышленными станциями (не могу сказать какими).  На каждой где-то по 4-5 датчиков. Но их опрашивает устройство на той стороне и уже оно формирует пакет и присылает его мне. Критичность по времени не сильно важна да и отправка как я сказал не часто. Теперь посоветуешь?  Веселый 
Записан
Bepec
Гость
« Ответ #18 : Декабрь 14, 2012, 18:45 »

Время не важно. Значит что? Значит спокойно используем 1 поток на приём пакетов, 1 поток на обработку/сохранение результатов. Плюс основной поток на отображение информации.

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

Другой поток стоит на семафоре. Как только появляются данные, обрабатывает (хзкак, опять таки твоё дело) и отдаёт их на откуп модели и снова стоит ждёт.

Модель уже отображает данные и/или записывает в БД.

PS у тебя получается система сбора информации. Так же ты упоминал "частичное управление". Но это уже на твой откуп, подробностей не даёшь Улыбающийся
Записан
brucemax
Гость
« Ответ #19 : Декабрь 17, 2012, 09:52 »

Спасибо!
...записываем в очередь на обработку..
В программном эквиваленте это например пустить сигнал,соединённый с объектом из потока обработки с указанием Qt::QueuedConnection?
Записан
Bepec
Гость
« Ответ #20 : Декабрь 17, 2012, 09:54 »

Как вариант да. Будет обычная очередь.

Хотя мне больше нравится обычное добавление в конец контейнера. Что по сути будет та же очередь Улыбающийся

PS хотя у тебя требований к скорости нет, значит и сигналы пойдут Улыбающийся (я им не доверяю Веселый)

 
Записан
brucemax
Гость
« Ответ #21 : Декабрь 20, 2012, 12:26 »

А корректно ли делать moveToThread после того как поток уже стартовал?  Просто в примерах  от Qt видел, что они сначала пихают объект в поток, а уже потом этот поток стартуют..
Записан
Bepec
Гость
« Ответ #22 : Декабрь 20, 2012, 13:20 »

С одной стороны плохо, ибо не все классы перенесут такое без криков. С другой стороны так можно делать, если класс не имеет ограничений.
Записан
mutineer
Гость
« Ответ #23 : Декабрь 20, 2012, 13:21 »

В доке противопоказаний нет
Записан
Bepec
Гость
« Ответ #24 : Декабрь 20, 2012, 13:23 »

Что-то типа SQLDatabase или SQLquery, не помню точно, будет требовать новое подключение к базе при переносе в другой поток. Т.е. фактически умирать Веселый
Записан
brucemax
Гость
« Ответ #25 : Декабрь 20, 2012, 15:05 »

С одной стороны плохо, ибо не все классы перенесут такое без криков. С другой стороны так можно делать, если класс не имеет ограничений.
Пока не знаю, как определить имеет ли класс ограничения, но у меня подключения возникают во время работы и чтобы кинуть сокет в обслуживающий поток  без данного действия не обойтись...  ммм..   Хотя обойтись..  сделав в том потоке объект, один из слотов которого будет клепать сокеты..  и эмитить ему сигнал из главного потока.   Или имея дело с сокетами (которые, надеюсь не имеют ограничений) не стоит париться и так сойдёт?
Записан
Bepec
Гость
« Ответ #26 : Декабрь 20, 2012, 15:16 »

ХЗ на всё. Сокеты бывают разные, черные, белые, красные, тисипишные и эскуэльные, удепешные и кутешные.
Записан
brucemax
Гость
« Ответ #27 : Декабрь 20, 2012, 16:13 »

ХЗ на всё. Сокеты бывают разные, черные, белые, красные, тисипишные и эскуэльные, удепешные и кутешные.
 Смеющийся
Записан
Bepec
Гость
« Ответ #28 : Декабрь 20, 2012, 16:43 »

А зачем вам сокеты в разных потоках?
Записан
brucemax
Гость
« Ответ #29 : Декабрь 20, 2012, 17:55 »

А зачем вам сокеты в разных потоках?
А где я написал, что они у меня в разных потоках?
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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