Повторный вызов COM в потоке пользовательского интерфейса - PullRequest
0 голосов
/ 08 июля 2020

Я пытаюсь расшифровать абзац ниже, взятый из сообщения в блоге здесь , который описывает историю COM в контексте разработки для Visual Studio IDE:

Когда все было собственным кодом C ++, COM гарантировал, что почти все происходило в основном потоке STA (то есть потоке пользовательского интерфейса). Если код, выполняющийся в другом подразделении (например, фоновый поток), вызывает любой из этих компонентов COM, фоновый поток блокирует , в то время как вызов повторяется в основном потоке . Это защитило COM-компонент от необходимости иметь дело с одновременным выполнением , но оставило его открытым для повторного входа ( вызывается при исходящем вызове ). Этот метод работал независимо от того, управлялся ли вызывающий (автоматически) или собственный код (через прокси-заглушку, которую COM генерировал для вызывающего).

Вопросы, которые у меня есть:

Что такое механизм повторного вызова вызова в другом потоке? Вы можете привести пример?

Совпадает ли проблема, упомянутая как «параллельное выполнение», с проблемой безопасности потоков?

Что вызывается при исходящем вызове?

Спасибо.

...