![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
про 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-контролов, то синхронизация обязательна, в противном случае ее обязательность зависит от разделяемости тех иных ресурсов, к которым происходит обращение в этом методе