powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужно переделать работу с COM Объектом. Прошу совета.
2 сообщений из 2, страница 1 из 1
Нужно переделать работу с COM Объектом. Прошу совета.
    #38470566
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья.
Дайте совет.

У меня имеется на руках COM объект, и программа его вызывающая (на C#). Нужно ее доработать, а возможности обратится к ее предыдущему разработчику нет, ввиду того, что он уже давно уволился.

У программы C# две обязанности:
1. Следит за управляющими сообщениями в БД. А также записывает туда статистическую информацию.
2. Вызывает соответствующие методы COM объекта.

Сам COM регистрируется в системе таким образом
Код: pascal
1.
TAutoObjectFactory.Create(ComServer, TListener Class_Listener, ciSingleInstance, tmApartment);


Он выполнен в виде DLL и регистрируется стандартным resvr32

А работа с COM идет в C#, как я понимаю, через позднее связывание (или я ошибаюсь) таким кодом:

Код: c#
1.
2.
3.
4.
Type comType = Type.GetTypeFromProgID(ProgID, false);
object comObj = Activator.CreateInstance(comType);
// и далее вызываем методы
comType.InvokeMember("DoLongWork", BindingFlags.InvokeMethod, null, comObj, null);



Мне нужно переделать это, чтобы эти 2 работы велись в двух потоках. Дело в том, что вызов метода COM-объекта, существенно стопорит вторую задачу (запись стат информации в БД). И пока она не вернет

Или Как я вижу, может не все так сложно. Возможно мне просто нужно вынести в отдельный поток работу, записывающую стат информацию в БД ? Это, мне кажется, должно быть гораздо проще - просто запустить бесконечный цикл в отдельном потоке, и он будет спокойно раз в несколько секунд записывать в БД.


У меня есть некоторые знания по COM, но очень давно не было практики (лет 5 назад была, но не сказать что был профи - так пара созданных COM объекта).

Дайте пожалуйста советы как это можно реализовать. В частности, я смутно вспоминаю про методы типа CoInitialize - которые должны быть вызваны для работы из другого потока, или я сильно ошибаюсь и к C# это не имеет отношения.

Может быть ссылки у кого полезные есть, в плане работы с COM из разных потоков ? Ибо "COM Interop Tutorials" ясности не внесли.

Как думаете ?
...
Рейтинг: 0 / 0
Нужно переделать работу с COM Объектом. Прошу совета.
    #38470574
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyКак думаете ?
если комсервер не многопоточный - жопа
если не сильно насрано - можно в разных процессах обращаться к com серверу
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужно переделать работу с COM Объектом. Прошу совета.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]