AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.04.2008, 17:08   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от axaLearner Посмотреть сообщение
Есть следующая задача: DAX управляет работой некой программы через COM объект. В случае когда эта программа закрывается не из DAX, т.е. DAX не знает о том что программа была закрыта, DAX продолжает пытаться дергать методы экземпляра COM и получает ошибку времени выполнения. Задача состоит в том, чтобы каждый раз, перед тем как вызвать метод COM - объекта, проверять, существует ли соответствующий ему процесс.
У вас исходная ситуация и сформулированная постановка задачи совершенно не стыкуются. Точнее, конечно, можно и так делать, но в многозадачных ОС так не принято. В многозадачных ОС принято использовать объекты синхронизации и функции ожидания изменений состояния этих объектов. Чтобы узнать, когда какой-то процесс завершится, получите его handle, создайте отдельный поток и вызовите WaitForSingleObject() с этим handle'ом и временем ожидания WAIT_INFINITE. Когда процесс завершится, функция вернет управление, и этот фоновый поток сможет что-то сделать в связи с тем, что управляемый процесс завершился и на COM-вызовы больше не ответит.

PS. Получить handle процесса (COM-сервера) можно, перебрав запущенные процессы и выбрав нужный по имени - это, конечно, для случая, когда в каждый момент времени может быть запущен один экземпляр соотв. процесса.

Последний раз редактировалось gl00mie; 09.04.2008 в 17:10.
За это сообщение автора поблагодарили: axaLearner (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
E-mail в Аксапте 3.0 с помощью CDO.Message COM объекта custtable DAX: Программирование 4 12.02.2008 10:31
Передача агументов в функцию com объекта doo DAX: Программирование 34 30.01.2007 13:14
Проблема с получение коллекции (массива) из COM-объекта. VES DAX: Программирование 6 24.03.2006 18:59
Как получить конкретный интерфейс COM объекта Tony Green DAX: Программирование 20 02.12.2004 09:54

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:53.