Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

про IdTCPServer [D6, WinXP]


NorthMan ©   (2004-06-01 13:02:00) 

Подскажите, плз, в событии OnExecute надо вызвать Form1.DoIt
Получается, нужно использовать Synhronize(Form1.DoIt)? Или можно иначе


Digitman   (2004-06-01 13:54:00) [1]


> У меня все это хозяйство в сервисе должно работать


это уж на твое усмотрение


> Оно и работает, но в случае, когда я эту функцию вызываю
> из стандартного компонента ServerSocket.onClientRead


да, работает.. работает если только обработчик onClientRead() вызывается в осн.код.потоке сервер-процесса (это условие соблюдается только если объект ServerSocket создается в осн.код.потоке, т.е. в обработчике TService.Create)


> С Indy такое не проходит


потому что обработчик OnExecute() там всегда вызывается в доп.код.потоке, ассоциированном с объектом Connection.PeerThread


NorthMan   (2004-06-01 13:26:00) [2]

У меня все это хозяйство в сервисе должно работать. Оно и работает, но в случае, когда я эту функцию вызываю из стандартного компонента ServerSocket.onClientRead. С Indy такое не проходит.


Digitman   (2004-06-01 13:17:00) [3]

если в ходе исполнения метода Form1.DoIt() происходит обращение к св-вам/методам неких визуальных VCL-контролов, то синхронизация обязательна, в противном случае ее обязательность зависит от разделяемости тех иных ресурсов, к которым происходит обращение в этом методе


Наверх

Титульная страница Поиск, карта сайта Написать письмо