Bonjour, je viens vous exposer un petit problème que je rencontre.
J'ai deux applications. D'un coté un programme (une barre), installée sur la barre de tâche, et de l'autre mon programme principal.
Ces deux applications communiques via des sockets. J'arrive pour le moment à afficher des informations de mon programme principal dans ma barre.
En gros, il y a un compteur dans mon programme, que je partage avec ma barre.
Celle-ci doit pouvoir mettre le compteur en pause.
Pour celà, je transmet via une socket, l'information lors du clic a mon programme, qui va demander l'ouverture d'une fenetre "pause".
Mais là se trouve le problème. Lorsque je test ce fameux clic, une erreur survient :
A la ligne suivant :Impossible d'instancier le contrôle ActiveX 'd27cdb6e-ae6d-11cf-96b8-444553540000', car le thread actuel n'est pas un thread cloisonné (STA, Single-Threaded Apartment)
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.axShockwaveFlashCC = new AxShockwaveFlashObjects.AxShockwaveFlash();
Sachant que :
- J'ai un thread dans chacun des deux programmes, que j'ai cloisonné
(J'ai essayé aussi avec STA)
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.listenThread.SetApartmentState(ApartmentState.MTA);
- Lorsque je met le compteur en pause directement à partir de mon programme, je n'ai aucune erreur (et pourtant j'appelle la même fonction).
- J'ai la ligne [STAThread] placée correctement
Pourriez vous me donner un coup de pouce ?
Merci d'avance et bonne journée.
Partager