(изменено: bannies, 1 июня 2010г. 14:28:37)

Тема: com сборка на c#

Добрый день.
Часть функционала для конфигурации потребовалось вынести в отдельную библиотеку, написанную на C#. Регистрация в GAC происходит в момент запуска через обычный bat файл.
Соответственно в дальнейшем в скриптах комманд просто вызываю методы этой библиотеки. Но проблема в том что при первом запуске такой команды происходит подвисание секунд на 10, что очень раздражает пользователей. Потом все летает, но после перезахода в TDMS проблема повторяется. Поделитесь опытом, как сделать оптимальнее?

Код комманды:
SysAdminMode On
Set objUTDMS = CreateObject("UTEP_TDMS.ADDIN")
objUTDMS.ImportComplects (ThisApplication)
Set objUTDMS = Nothing
SysAdminMode Off

Re: com сборка на c#

Уточню вопрос. Можно ли использовать какую то глобальную переменную и задавать её один раз при запуске TDMS? Чтобы не создавать объект "... CreateObject("UTEP_TDMS.ADDIN")" при каждом запуске команды. Может как то через Public переменные?

Re: com сборка на c#

Все нашел)

Используем Dictionary

'При старте заносим наш com объект в переменную в Dictionary
Sub Startup()
 
  ThisApplication.Dictionary.Add "UTEP_TDMS", CreateObject("UTEP_TDMS.ADDIN")

End Sub

'При выполнении команды просто обращаемся к методам данного объекта
ThisApplication.Dictionary.Item("UTEP_TDMS").SmetNameForm(ThisApplication)