Отправка сообщений в ветку sta

Я немного прочитал о модели потоковой передачи COM: MTA и STA, например, это сообщение SO:

Разница между MTA и STA

Там мы можем прочитать, что для связи с объектом внутри STA нам нужен сообщения насоса для этого апартамента.

У меня вопрос, как это сделать (C# / VB.NET)? Как я могу сообщение насоса из другого потока, например, текстовое поле в WinForms обновляется (изменяет его текст или что-то еще)?

Допускаются также любые замечания / указатели.

Вы мог используете Application.DoEvents, но это может быть сложнее, чем кажется: stackoverflow.com/questions/5181777/use-of-application-doeve‌ nts и blogs.msdn.microsoft.com/jfoscoding/2005/08/06/… реальный вопрос в том, зачем вам нужно перекачивать сообщения?

Simon Mourier 13.09.2018 19:41

Вы неправильно поняли пост. Поток, присоединившийся к STA, несет ответственность за перекачку сообщений, отправленных в его окна; в противном случае COM-объекты, размещенные на нем, работать не будут. COM-вызовы к объектам STA из-за пределов их квартиры реализуются путем отправки оконных сообщений в специальное скрытое окно, поддерживаемое средой выполнения COM; если поток не перекачивает сообщения, эти вызовы не будут доставлены. Вы не можете заставить поток перекачивать сообщения извне - он просто что-то делает (или не делает, и в этом случае он глючит). Итак, есть ли проблема, которую вы пытаетесь решить?

Igor Tandetnik 13.09.2018 20:05

@IgorTandetnik Я думаю, это просто чистая любезность. Я только что читал о вызове платформы и COM-взаимодействии и хотел получить полное представление о том, как все работает.

Michał Turczyn 13.09.2018 20:12
эта статья - лучшее, что я знаю по этому поводу. Однако он не описывает взаимодействие, просто "классический" COM.
Igor Tandetnik 13.09.2018 20:17

Спасибо @IgorTandetnik, вы могли собрать свои комментарии в ответ, вы очень помогли :)

Michał Turczyn 13.09.2018 20:22
0
5
133
0

Другие вопросы по теме