Описание тега apartments

Понятие в поточной модели объектной модели компонентов (COM) встречается в терминах STA и MTA.
1 ответ

Как я могу установить состояние квартиры COM для кода, загруженного с помощью `AppDomain.ExecuteAssembly`?

Когда я создаю Thread У меня есть возможность установить его состояние квартиры COM, прежде чем я его запусту. Например: // using System.Threading; var thread = new Thread(…); thread.SetApartmentState(ApartmentState.STA); thread.Start(); Но когда я …
11 июн '16 в 08:53
1 ответ

Асинхронные операции внутри асинхронной операции

Мои знания о многопоточности все еще довольно элементарны, поэтому я очень ценю некоторые советы здесь. У меня есть интерфейс IOperationInvoker (из WCF), который имеет следующие методы: IAsyncResult InvokeBegin(object instance, object[] inputs, Asyn…
18 апр '09 в 13:10
0 ответов

Ошибка "Невозможно привести COM-объект типа" при пересечении потоковых квартир в C#

Я работал со сторонним SDK в качестве ссылочной библиотеки DLL из C#, используя.NET 4.5.2 в Windows 10. Среда IDE создает Interop вокруг библиотеки DLL, и я вижу соответствующие пространства имен, интерфейсы, перечисление и т. Д. SDK, с которым я ра…
06 дек '16 в 15:46
1 ответ

О квартирных моделях потоков

У меня есть несколько вопросов о квартирах: Эта модель была представлена ​​только для целей COM? Можете ли вы указать хорошие ресурсы о них? С точки зрения безопасности потока, что означает, что компонент поддерживает модель STA или MTA? Благодарю.
18 дек '10 в 08:01
1 ответ

FreeThreadedDOMDocument, Нейтральные Квартиры и Свободнопоточный Маршалер

Как говорится в MSDN: Если вы пишете однопоточное приложение (или многопоточное приложение, где только один поток обращается к DOM одновременно), используйте арендуемую поточную модель (Msxml2.DOMDocument.3.0 или Msxml2.DOMDocument.6.0). Если вы пиш…
2 ответа

Квартиры "живут" на стороне сервера или на стороне клиента в аутсорсинговой среде?

Я с трудом пытаюсь понять COM-апартаменты в непроцессной среде. В принципе я не могу понять, почему клиент должен звонить CoInitializeEx зарегистрировать свою собственную тему в квартире. Я могу понять объект, используемый потоками сервера и потокам…
25 май '12 в 15:55
1 ответ

CoInitializeEx возвращает S_OK при вызове внутри COM-объекта

Некоторое время назад мне пришлось изменить старую библиотеку COM DLL (Visual C++ 2010, ATL), перенеся ее из модели потоков "Квартира" в "Оба", то есть теперь ее можно вызывать из потоков STA и MTA без сериализации вызовов (конечно, Мне пришлось доб…
20 сен '13 в 08:49
1 ответ

CoRegisterClassObject нарушает безопасность потоков

Я тестирую фабрику пользовательских классов, которая будет зарегистрирована с помощью coregisterclassobject, и замечаю, что это вызывает проблемы с многопоточностью. Я создал тестовый объект com и создал его экземпляр, и все вело себя как ожидалось.…
12 июл '13 в 22:13
1 ответ

Маршалу или не маршалу

Я не смог найти однозначного ответа на следующий вопрос: если COM-класс является потокобезопасным, то есть он помечен как Both или Free, мне действительно нужно маршалировать его интерфейс объекта, чтобы передать его другому потоку в том же процессе…
19 июл '16 в 09:06
1 ответ

Thread.Join в среде общего хостинга

Интересно, может ли кто-нибудь мне помочь - я давно программирую на VB.Net, но мне редко приходилось делать много потоков в ASP.Net. Я пытаюсь сделать "скриншоты" сайтов с помощью браузера в памяти. Эти образы затем записываются в БД и записываются …
9 ответов

Не могли бы вы объяснить STA и MTA?

Можете ли вы объяснить STA и MTA своими словами? Кроме того, каковы жилые темы, и они относятся только к COM? Если так, то почему?
24 сен '08 в 13:40
2 ответа

Ошибка при переключении арендатора с помощью Apartment Gem

Я получаю ошибку при выполнении Apartment::Tenant.switch!("tenant_name") даже когда арендатор существует. Когда я запускаю Apartment::tenant_names, он возвращает массив, содержащий ["murah5","rahmatullah","test"] тогда я бегу Apartment::Tenant.switc…
1 ответ

Как заставить работу Quartz.net работать в однопоточной квартире?

Я просто попробовал это: public class FooJob : IJob { public FooJob() { } public void Execute(JobExecutionContext context) { Thread.CurrentThread.SetApartmentState(ApartmentState.STA); } } Но это выдает InvalidOperationException. Идеи?
19 сен '09 в 20:03
1 ответ

Пример ATL вызова (маршаллинга) COM-интерфейсов с плоской резьбой из рабочего потока

Я ищу пример кода, который иллюстрирует выполнение многопоточных вызовов COM в DLL-библиотеке ATL COM Server. Знаешь один? Больше деталей: Мой компонент - это объект IE Browser Helper, который должен работать в фоновом потоке. В одном из методов мое…
23 мар '11 в 21:36
0 ответов

Не в состоянии обрабатывать события com в C#

Как обрабатывать ком события в C#? Я создал одну библиотеку классов в C# и выставил как com компонент с техникой com бесплатно реестра. [ComVisible(true)] [Guid("SOME GUID")] [InterfaceType(InterfaceType.InterfaceIsIDispatch)] public interface ICame…
23 ноя '17 в 21:40
0 ответов

Как изменить модель квартиры в уже существующем проекте Visual Studio C++?

У меня есть проект Visual C++ 2013, который был создан с помощью мастера COM. При создании этого компонента была выбрана модель квартиры. Есть ли способ изменить эту модель на другую квартиру, не воссоздавая проект с нуля?
20 апр '15 в 12:31
1 ответ

Элемент управления ActiveX не может быть создан, потому что поток находится в однопоточной квартире. Бывает после пробуждения ПК от сна

Я работаю над клиентом VOIP (форма окна), который открывает окно браузера (ExtendedWebBrowser) при совершении или получении вызова. Обычно это работает нормально, но если компьютер переводится в спящий режим, а затем просыпается, программа вылетает …
2 ответа

STA относится к объектам и функциям?

Мое понимание STA состоит в том, что если мой поток работает в квартире STA, мне не нужно беспокоиться о безопасности потока, и вызовы функций моего потока автоматически ставятся в очередь. Мой вопрос заключается в том, что если я запускаю рабочий п…
25 фев '11 в 13:16
1 ответ

COM+ длительный метод, вызывающий блокирование / зависание других методов

У меня есть длительный метод COM+, который я должен иметь возможность отменить из другого потока. Я использую C#/.NET для взаимодействия объектов COM+. Я настроил оба объекта COM+ для создания "свободной" модели потоков. Этот пример C# демонстрирует…
04 май '14 в 14:10
0 ответов

Как я могу явно установить квартиру объекта в IClassFactory::CreateInstance вместо того, чтобы использовать квартиру текущего потока

Я пытаюсь зарегистрировать фабрику пользовательских классов в CoRegisterClassObject, и фабрика должна иметь возможность обрабатывать объекты STA и MTA. Я заметил, что IClassFactory:: CreateInstance использует любую модель потоков, указанную для теку…
15 июл '13 в 19:02