![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 02.08.2014
Сообщений: 476
|
![]()
Доброго времени суток!
у меня есть потоки, которые выполняют один и тот же код, но заполняют разные компоненты, можно ли свести все это до 1 потока в который просто будут передавать компоненты которые нужно заполнить например memo1, memo2 ? |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
VCL компоненты (в т.ч. Memo) НЕ предусматривают работу В Потоках БЕЗ синхронизации!!! (читай про Synchonize). А работа потока внутри Synchronize это тоже что и работа БЕЗ потоков. Вар 1. классический 1. объявляем поле данных потока, для хранения ссылки на компонент. 2.ПИШЕМ свой конструктор потока, в котором ПОЛУЧАЕМ необходимый ему компонент и заполняем поле (см. п.1) Код:
Код:
Код:
Вар 2. Разбираемся КАК передавать сообщения различным окнам. PostMessage и ЕЕ параметры. И какие именно сообщения нужны для передачи данных в Memo. 1. В конструкторе потока указываем с каким окном будем работать. (1-ый параметр PostMessage) 2. В Execute вызываем отправку сообщения c нужными(!!!) параметрами.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 27.06.2016 в 13:27. |
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 02.08.2014
Сообщений: 476
|
![]()
у меня есть допустим 6 потоков, все они заходят на один и тот же сайт, только по разным страницам (т.е. по мимо компонентов еще нужно передать в поток эту самую ссылку), парсят от туда одни и те же данные, но выводит в разные memo, удобнее и проще я думаю передавать компонент в поток, чем держать кучу одинаковых потоков...?
ну это понятно, но в синхронизации у меня только вывод в memo, а в самом Execute уже get на сайт и парсинг |
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|||
![]() |
![]() |
![]() |
#6 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Можно и контрол передавать. А внутри потока передавать в него (контрол) готовое содержимое внутри DoTerminate(), к примеру так:
Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как передать данные в поток.. | login10 | C# (си шарп) | 9 | 01.11.2014 15:08 |
Как передать динамический массив в поток? | bilibian | Общие вопросы Delphi | 8 | 28.02.2014 15:22 |
Как передать структуру в поток при _beginthread | Ksardas13 | Общие вопросы C/C++ | 2 | 10.03.2012 05:00 |
Как передать параметр в поток? | Pack | Общие вопросы Delphi | 3 | 22.02.2012 12:09 |
Передать переменную в поток,туплю. | larin1974 | Помощь студентам | 2 | 20.11.2009 05:25 |