Je lance un thread depuis une application STA. Ce thread bloque au premier
appel à un objet COM. Je présume que Interop l'importe comme un STA et qu'il
y a une protection contre la réentrance ... mais je ne vois pas laquelle.
Même si je déclare mon thread comme MTA, le deadlock est le même. Or mon
objet COM est en Apartement model: 'Both' : il peut être réentrant sans
problème.
Si je lance l'application en supprimant l'attribut [STAThread] du Main(),
tout marche bien. Le problème, c'est que j'ai besoin de conserver cet
attribut pour d'autres fonctionnalités.
Comment puis-je faire en sorte de supprimer ce bloquage ? A quoi est-il dû
en premier lieu ? Comment configurer le thread ou Interop pour conserver le
threading model de mon objet ?