powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Какие проблемы при обращении к COM объекту не из главного потока программы ?
6 сообщений из 6, страница 1 из 1
Какие проблемы при обращении к COM объекту не из главного потока программы ?
    #38474427
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.
Имеется программа, работающая с COM через "позднее связывание" (как я понимаю) таким образом:

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



В других языках, насколько я помню, требуется вызов COInintialize для потока, в котором будет обращение к COM.

Есть ли в C# какие то проблемы с работой с этим COM объектом из разных потоков ? Какие там подводные камни ?



PS. Что то очень мало сведений по COM в книгах C#. Смотрел содержание книг того же Рихтера, Троелсена.
...
Рейтинг: 0 / 0
Какие проблемы при обращении к COM объекту не из главного потока программы ?
    #38474818
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если используешь фреймворк 4.0 можешь не париться с инвок мембер, а записывать созданный инстанс в dynamic переменную и вызывать методы на прямую.

проблем с вызовом из разных потоков быть не должно.

сведений мало, потому что сам дотнет пришел на смену кому и построен на его базе(слр по сути ком сервер)
...
Рейтинг: 0 / 0
Какие проблемы при обращении к COM объекту не из главного потока программы ?
    #38475129
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyPS. Что то очень мало сведений по COM в книгах C#
По собственно COM без c# хороших книг мало

http://msdn.microsoft.com/en-us/library/bd9cdfyx(v=vs.110).aspx - для начала здесь достаточно информации

COInintialize - не беспокойтесь, в c# всегда будет вызван автоматически
С подводными камнями - разбираться по мере поступления
...
Рейтинг: 0 / 0
Какие проблемы при обращении к COM объекту не из главного потока программы ?
    #38484074
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Esofterесли используешь фреймворк 4.0 можешь не париться с инвок мембер, а записывать созданный инстанс в dynamic переменную и вызывать методы на прямую.


Очень понравилось предложение. Код был бы конечно красивее !
Но var можно использовать только для локальных переменных.
А COM объект хранится в поле класса. Код из первого поста, он просто чуть упрощен, чтобы показать все в сжатом виде.

Это противоречие не разрешить ?
Спрашиваю просто ради интереса, ибо может есть какой то хитрый трюк :)
...
Рейтинг: 0 / 0
Какие проблемы при обращении к COM объекту не из главного потока программы ?
    #38484165
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyНо var можно использовать только для локальных переменных
var и dynamic не путай
...
Рейтинг: 0 / 0
Какие проблемы при обращении к COM объекту не из главного потока программы ?
    #38484195
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyА COM объект хранится в поле класса. Код из первого поста, он просто чуть упрощен, чтобы показать все в сжатом виде.

Это противоречие не разрешить ?
Спрашиваю просто ради интереса, ибо может есть какой то хитрый трюк :)

не вопрос. поле класса объяви как dynamic. Ведь это не кейворд в конце концов, а специальный алиас Object+метаданные
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Какие проблемы при обращении к COM объекту не из главного потока программы ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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