Je suis en train de créer une application Winforms avec deux composants COM. Cependant, l'un des composants ne fonctionne que lorsque vous utilisez [MTAThread]
et l'autre ne fonctionne qu'avec [STAThread]
.Winforms: un objet COM a besoin d'un STAThread, l'autre nécessite un MTAThread. Comment puis-je les utiliser?
Quelle serait la solution recommandée?
Un nouveau thread (() => {COMObject = nouveau COMObject(); ... etc}). Start()? –
Oui. Normalement, je n'utilise pas lambda pour un nouveau thread, juste parce que la méthode thread a tendance à être plus longue, mais cela fonctionnerait bien .... Les nouveaux threads par défaut à MTA, donc vous pouvez le faire pour le thread MTA. Il ne peut simplement pas être sur le thread d'interface graphique, car Windows Forms requiert STA. –
J'ai essayé ceci avec des discussions, mais cela ne fonctionnera toujours pas. Mon winform semble fonctionner correctement avec [MTAThread]. D'autres idées? –