Pregunta

i M desarrollo de una aplicación en VB 2008, y el uso de los trabajadores de fondo para copiar el archivo (s). Tengo mi propia forma diseñada que desempeña un animationon en la parte superior del formulario, junto con la copia. Para la reproducción de animación que estoy usando "AxMSComCtl2.AxAnimation", en la ejecución i get

"control ActiveX '' no puede ser instanciado porque el hilo actual no está en una sola roscado apartamento."

en la búsqueda me encontré con un enlace: Foro Enlace

Pero aún en este enlace En primer lugar yo no entiendo dónde insertar este fragmento y en segundo lugar cómo poner en práctica la idea de fondo trabajador.

Por favor, me guía en este sentido.

Gracias y Saludos,

Maverick.

¿Fue útil?

Solución

Se necesita utilizar un delegado y tienen el hilo principal controla realmente la animación. Se invoca el delegado del subproceso en segundo plano pero se ejecuta en el hilo principal. Esta página, segundo puesto, tiene la idea general: http://www.vbforums.com/showthread.php?t=377205

Otros consejos

No se puede utilizar un BackgroundWorker para animar este control. Es un control ActiveX, se requiere que se crea en el hilo principal de la aplicación. El mismo hilo que crea el formulario.

Esta es una restricción muy común para los controles en general, no son compatibles con el roscado.

El hilo unido no resuelve su problema. Sí, puede crear su propio hilo STA llamando SetApartmentState () y especificando STA, pero ahora no se puede hacer nada con el formulario que creó en el hilo principal. Usted obtendrá una excepción cuando se agrega el control al formulario. Los controles secundarios de una forma deben crearse en el mismo hilo como la forma.

Esto se debe, en general, no será un problema. La animación debe ser razonablemente suave, siempre y cuando mantenga los controladores de eventos de la forma corta y ágil. Si un controlador de eventos tales necesidades para hacer algo que toma un tiempo (y congela la animación como resultado) y luego dejar que un BGW realizar ese trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top