Описание тега 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). Если вы пиш…
21 июл '16 в 13:13
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. Я пытаюсь сделать "скриншоты" сайтов с помощью браузера в памяти. Эти образы затем записываются в БД и записываются …
19 янв '10 в 02:47
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…
15 авг '17 в 07:39
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) при совершении или получении вызова. Обычно это работает нормально, но если компьютер переводится в спящий режим, а затем просыпается, программа вылетает …
09 май '12 в 17:11
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