![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Что под этим подразумевается? Отсутствие "тормозов" GUI как вы понимаете решается переносом работы с сокетами в отдельный поток. Sleep() вызванный внутри большого количества потоков на сколько мне известно особой нагрузки не вызывает. О тонкостях "паузы" потока мне к сожалению неизвестно.
|
![]() |
![]() |
![]() |
#13 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
Девайс 1: - Девайс 1-1 - Девайс 1-2: - - Девайс 2-1 - - Девайс 2-2 - Девайс 3 - - Девайс 3-1 - - Девайс 3-2 - - - Девайс 2-1 - - - Девайс 2-3 и т.д. и ещё запутанней. Ну и при раскрытии Node надо создавать подключения. И пока клиент не в потоке - это затруднительно возможно. программа просто вешается. А учитывая, что идёт постоянный обмен данными - то вообще караул. Вот я ищу способ, вынести клиент девайса в TThread, чтобы пользовательский GUI хотя бы не тупил. |
|
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Так вот же оно решение на блюдечке:
Простейший код потока, при запуске(потока) создаётся подключение, перед этим в GUI вешаете анимацию/обозначение загрузки инфо, вроде Организовываете пару флагов для работы в стиле Terminated. При успешном подключении (или другой нужной работе) поток синхронизируется с GUI и изменяет дерево (или вообще что угодно в основном потоке программы). Погуглите "TThread Synchronize" примеров куча. Так-же можно по глупости сделать как я, передать нужные параметры новому потоку чтобы синхронизацией с GUI (или чемто другим) занимался уже он, а после самоуничтожался ![]() Последний раз редактировалось Lime; 30.07.2013 в 18:55. |
![]() |
![]() |
![]() |
#15 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
покажи что должен сделать TRosApiClient...
var Cl: TRosApiClient; begin Cl:=TRosApiClient.Create;; try что тут? finally cl.free; end; end;
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#16 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Поток надо удерживать, операции двусторонние, т.е. "обозвал и смылся" - не прокатит.
У меня есть класс содержащий этот клиент. В конструкторе клиент создается, в деструкторе клиент уничтожается. В какой-то момент пользователь подключает клиент к устройству в интернетах. Ну и в порядке вещей, происходит обмен данных между клиентом и VCL программы. Каждый девайс что-то вроде базы данных. В общем, я растерялся совсем. Как организовать многопоточность здесь. Цитата:
Между тем и этим как с БД: Querty API запросы. Последний раз редактировалось Человек_Борща; 30.07.2013 в 19:12. |
|
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Создайте для начала рабочий пример с потоками и их взаимодействием с GUI. А там всё само прийдет...
Я бы сделал задания для каждого потока. GUI-> поток (задание пользователя): поток проверяет наличие задания в цикле while (flag/terminated/etc..). поток->GUI (задание выполнено): поток синхронизируется с GUI (одноименным методом передавая значение из поля класса куда угодно и проводит необходимые манипуляции). |
![]() |
![]() |
![]() |
#18 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сохранить компонент в поток и сразу же его загрузить в BLOB поле? | artemavd | Общие вопросы Delphi | 17 | 17.05.2012 23:52 |
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. | Человек_Борща | Общие вопросы Delphi | 8 | 27.02.2012 23:24 |
как вставить текст в delphi в компонент memo | dimusiko | Помощь студентам | 3 | 31.01.2012 19:23 |
[Поиск] Компонент локализации строковых ресурсов и сторонних компонент delphi | Человек_Борща | Компоненты Delphi | 3 | 23.08.2011 10:44 |
Поток. Не получается создать поток. Выдает ошибки при запуске | bigory | Общие вопросы по Java, Java SE, Kotlin | 3 | 23.09.2010 00:40 |