Czy w tym przypadku wymagana jest pętla wiadomości STA?

Mam kilka obiektów COM, które tworzę i uruchamiam na wątkach w aplikacji .NET. Wątki są oznaczone jako Single Threaded Apartments i wszystko wydaje się działać. Rozumiem, że jeśli te wątki próbują uzyskać dostęp do obiektów COM z głównego wątku, wówczas obiekty te zostaną automatycznie zebrane i zserializowane dla mnie w .NET, więc nawet w takim przypadku rzeczy będą obsługiwane dla mnie, wszystko bezpieczne i schludne, choć może trochę powoli.

Moje pytanie brzmi: podczas gdy wszystko wygląda dobrze, jestemnie pompowanie pętli wiadomości w tworzonych wątkach STA. Wolę uniknąć pętli wiadomości, jeśli mogę, ze względu na dodatkowe komplikacje, które spowodowałby (i możliwe straty wydajności również).

Przeczytałem kilka porad dotyczących tego, dlaczego pętla wiadomości jest konieczna (głównie z bardzo pomocnego Hansa Passanta) i rozumiem, że pętla komunikatów daje miejsce w wątku A, w którym inny wątek B może zażądać obiektów COM życie w wątku A może być zebrane i zagrane. Jeśli to jest poprawne, to dopóki żadne inne wątki nie zażądają niczego od obiektów COM w wątku A, czy wątek jest bezpieczny, jeśli nie pompuje pętli wiadomości? A może są też inne przypadki, w których może pojawić się pętla wiadomości?

Czy gram tutaj z ogniem? I czy kiedykolwiek zdarza się, że pytasz, czy grasz z ogniem, a ty nie?

questionAnswers(2)

yourAnswerToTheQuestion