|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|||||||||||
Delphi XE8 параллельные потоки19.07.2015, 18:38. Показов 6298. Ответов 42
Метки нет (Все метки)
Добрый день!
У меня есть две процедуры, первая
Во второй процедуре (ниже) я проверяю состояние этого потока, строку выделил, в этой строке если поток не выполняется мне нужно выполнить указанные действия
0
|
|||||||||||
| 19.07.2015, 18:38 | |
|
Ответы с готовыми решениями:
42
Delphi xe8 моргает |
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 02.08.2015, 20:23 | ||
|
Что ж ты там такого понахреновертил, что простейшая в общем операция вылилась в целый опус ?)
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|
| 02.08.2015, 20:47 [ТС] | |
|
ты мне лучше скажи, все таки как мне быть с нитью, если я пере подключаю сокет в основном потоке, мне нужно нить заного создавать, и передавать ей сокет или со старой тоже сойдет?
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 02.08.2015, 20:59 | |
|
Ну нельзя заниматься манипуляциями с подключением-отключением в одной нити, в то время как другая, ничего не зная об этом, продолжает мочалить сокет приемопередачами)
Либо ты должен передать нити полномочия на коннект-дисконнект либо каким-то образом ставить ее в известность о собственных манипуляциях, с тем чтобы она на это время прекращала свои операции ввода-вывода, т.е. исключить несогласованные действия. Синхронизацией это называется.
0
|
|
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|
| 02.08.2015, 21:06 [ТС] | |
|
может я не корректно вопрос поставил, просто с этим программированием про все забываешь...
Смотри, у меня подключение в основном потоке происходит Дальше запускается нить для обмена данными с сервером, в которую передается параметром переменная с подключенным сокетом. Если в нити возникает ошибка, я ее гашу в нити, и передаю управление основному потоку в котором делаю реконнект, при этом нить у меня остается, просто в ней процедура execute завершается. Вопрос у меня в том, что после реконекта в основном потоке, мне существующую нить нужно убивать и создавать заного или просто запустить ее опять и она сама найдет(!) туже переменную с сокетом
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 02.08.2015, 21:09 | ||
|
Все то время пока доп.поток работает, основной у тебя ждет что ли пока тот завершится ?
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|
| 02.08.2015, 21:15 [ТС] | |
|
нет не ждет, просто в основном потоке после подключения никакого обращения к сокету не происходит, он занимается обработкой интерфейса по запросам пользователя. Блин я вот сейчас пишу и думаю, и вправду логичней в доп потоке делать и коннект и с данными работать и дисконект, но я создавал доп поток только ради того чтобы он раз в в 3 минуты отправлял на сервер запрос NOOP и проверял нет ли от сервера новых данных
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 02.08.2015, 21:17 | ||
|
В каком потоке это происходит ?
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
||
| 02.08.2015, 21:25 [ТС] | ||
|
Добавлено через 6 минут давай с другой стороны задам вопрос. Если я создаю сокет в переменную А, потом копирую переменную А -> в У. Далее в переменной А отключаю сокет и подключаю. У меня переменные А и У одинаковые будут или разные?
0
|
||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 02.08.2015, 21:27 | |
|
Тогда тем непонятнее нафих нужен коннект-дисконнект в осн.потоке, если львиная доля логики обмена осуществляется именно в доп.потоке ..
Но в любом случае факт завершения метода Execute доп.нити означает невозможность повторного ее использования.
1
|
|
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|
| 02.08.2015, 21:28 [ТС] | |
|
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 02.08.2015, 21:28 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|||||||
| 13.09.2015, 18:56 [ТС] | |||||||
0
|
|||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 13.09.2015, 21:02 | ||
|
Нельзя так делать - уничтожать объект в обработчике его же собственного события.
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|
| 13.09.2015, 21:11 [ТС] | |
|
А где же его уничтожать тогда?
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 13.09.2015, 21:14 | |
|
Странно при этом что ты не задаешь вопрос "где его создавать"..
Вот там где создавал - там и уничтожай.
0
|
|
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
||||||
| 13.09.2015, 21:24 [ТС] | ||||||
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 13.09.2015, 21:26 | |
|
Где у тебя создается экземпляр класса TheTH ?
0
|
|
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
||||||
| 13.09.2015, 21:34 [ТС] | ||||||
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 13.09.2015, 21:38 | ||
|
И обработчик события кнопки - это метод формы. Вот и уничтожай поток точно там - в любом подходящем методе-обработчике любого подходязего объекта на форме. Или в обработчике какого-то события самой формы.
0
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 34
|
|
| 13.09.2015, 22:08 [ТС] | |
|
А как уничтожать через TheTHWork.Destroy или FreeAndNil(TheTHWork) ?
0
|
|
| 13.09.2015, 22:08 | |
|
Как активировать Delphi xe8? Не открывается проект в Delphi XE8 Возможности и преимущества среды delphi xe8 Не могу установить ZLibExGZ Delphi XE8 CodeSite в Delphi XE8, не работает CodeSiteLogging Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|