![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
потоки и визуальные компоненты [D7, WinXP]
Veon © (2007-03-23 18:13:00)Подскажите в чем бока:
Создал класс(TSession), потомок от TThread. который должен разбирать записи, частью записи являются TEdit и TImage.
в ф-циях определил ф-цию(TSession.AddLine) которая создает все эти компоненты. (ф-ция не вызывается перед Execute)
Теперь удивительное: когда я в Execute жду события (внесения текста в форму) TEdit вешается, без него все ок. Такое чувство что потоки не работают
Решил вынесением создания записи из ф-ций класса на уровень выше и передаю уже созданную запись внутрь TSession.AddLine уже созданную и сформированную запись.
Что дает такой неприятный эффект???
Kolan (2007-03-23 22:43:00) [1]> класс соединения включает индикатор, а изменения в компонентах
> уже синхронизировать
VCL почти все не потоко безопасна
Eraser (2007-03-23 22:39:00) [2]> [5] Veon © (23.03.07 19:40)
что есть "индикаторы для множества соединений"?
скорее всего проблема легко решается через систему сообщений.
Veon (2007-03-23 19:40:00) [3]если нельзя допускать доступ, то как сделать например индикаторы для множества соединений ?
как по-моему - класс соединения включает индикатор, а изменения в компонентах уже синхронизировать
trubin (2007-03-23 19:29:00) [4]Используй TThread.Synchronize
Eraser (2007-03-23 19:19:00) [5]> [2] Veon © (23.03.07 19:17)
а это без разницы - создаешь до потока или после. нельзя допускать прямой доступ к полям и методам визульного компонента из доп. потока.
Veon (2007-03-23 19:17:00) [6]так я его создаю до запуска потока. и нужно компонентов столько сколько потоков, которые будут потом с ними работать
Eraser (2007-03-23 19:13:00) [7]> [0] Veon © (23.03.07 18:13)
> Что дает такой неприятный эффект???
Использовать визуальные VCL компонеты не из главного потока нельзя. Вот что дает такой эффект. Для взаимодейсивия с визуальными компонентами из потока лучше всего использовать сообщения.