Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Com Automation Object |
Автор: Fedia 25.9.2006, 08:29 | ||||
Приветствую всех ! Столкнулся вот с какой задачей: Реализован внешний Com-сервер автоматизации (Automation Object), обеспечивающий обратную связь со своими клиентами посредством событий:
В процедуре DoChange получаем перечень клиентов сервера, затем перебираем клиентов и генерируем на их "стоках" событие OnChange. При закрытии программы - клиента на OnClose главной формы осуществляется отключение от сервера автоматизации:
Проблема в том, что приложение - клиент может быть закрыто через диспетчер задач (вкладка "Процессы") или какой-либо другой тяжелой артиллерией и процедура отключения от сервера не сработает -> сервер не будет знать о том, что клиент отключился и при попытка генерации события на "стоке" клиента он получит ошибку AV. Я поставил заглушку в виде блока try..except, но это ведь не дело. Подскажите как перед генерацией события мне проверить доступность клиента ? ЗЫ: описал задачу как смог, если понадобятся уточнения, то спрашивайте. |
Автор: drkot 25.9.2006, 12:35 |
Использование исключений это правильный путь, они для этой цели и созданы. Нужно только добавить обработчик исключения который удалит клиента из списка, чтобы не возникало ошибок вдальнейшем. |