Question

Je ne suis pas le développement d'une application vb 2008, et l'utilisation de travailleurs de fond pour copier le fichier (s). J'ai ma propre forme conçue qui joue un animationon sur le dessus de la forme avec copie. Pour jouer l'animation i m en utilisant "AxMSComCtl2.AxAnimation", sur l'exécution i get

« contrôle ActiveX « » ne peut pas être instancié parce que le thread courant n'est pas dans un appartement monothread. »

On recherche je l'ai trouvé un lien: Forum Lien

Mais encore ce lien Tout d'abord je ne comprends pas où insérer cet extrait et d'autre part comment mettre en œuvre l'idée de travailleur de fond.

S'il vous plaît me guider à cet égard.

Merci et salutations,

Maverick.

Était-ce utile?

La solution

Vous devez utiliser un délégué et ont le thread principal réellement contrôler l'animation. Vous invoquez le délégué du fil de fond, mais il fonctionne dans le thread principal. Cette page, deuxième poste, a l'idée approximative: http://www.vbforums.com/showthread.php?t=377205

Autres conseils

Vous ne pouvez pas utiliser un BackgroundWorker pour animer ce contrôle. Il est un contrôle ActiveX, il faut que vous créez dans le thread principal de votre application. Le même thread qui crée la forme.

Ceci est une restriction très courante pour les contrôles en général, ils ne supportent pas le filetage.

Le fil lié ne résout pas votre problème. Oui, vous pouvez créer votre propre thread STA en appelant SetApartmentState () et en spécifiant STA, mais maintenant vous ne pouvez rien faire avec le formulaire que vous avez créé sur le thread principal. Vous aurez une exception lorsque vous ajoutez le contrôle à la forme. Les contrôles enfants d'un formulaire doivent être créés dans le même fil que la forme.

Cela devrait en général pas un problème. L'animation doit être raisonnablement lisse aussi longtemps que vous gardez les gestionnaires d'événements de la forme courte et accrocheurs. Si un tel besoin de gestionnaire d'événements pour faire quelque chose qui prend un certain temps (et l'animation se fige en conséquence) puis laisser un BGW effectuer ce travail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top