Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

elGuille.hosting: Ofertas de alojamiento
posiblemente los mejores precios
¡¡¡ Ahora con el doble de casi todo !!!

Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

20/oct/2006
Repetimos: ya que de vez en cuando es bueno que sepas que cosas te facilitarán las respuestas:
-No repitas mensajes,
-Intenta escribir un asunto adecuado a tu duda,
-No personalices (no indiques el nombre de quien quieres que responda),
-Explica bien tu duda, ten en cuenta que el que lee no puede leer tu mente y necesita saber todo lo que tu sabes para poder ayudarte.
Gracias.

  Foro: .NET VB Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 57766 - Problema control otro formulario desde proceso asincrono
IDAsuntoFechaNick 
57766 Problema control otro formulario desde proceso asincrono21/10/14 18:18jjthetower   
Buenos días a todos,

Estoy realizando una aplicación de Visual basic .net con un proceso asíncrono con el complemento BackgroundWorker. El problema es cuando el proceso asíncrono llama a otro proceso que esta en otro código distinto al del formulario y este cambia algún control o activeX del formulario. Al suceder esto se produce un error de InvalidOperationException.

El error es: Error al crear el formulario. Consulte Exception.InnerException para obtener mas detalles. Error:No se puede crear una instancia del control ActiveX '7879879-33232-332-333' porque el subproceso actual no está en un apartamento de un solo proceso.

No se como se adjuntan imágenes sino os enseñaría una imagen con el error.

A ver que me recomendáis

Saludos.
IDAsuntoFechaNick 
57767 Re: Problema control otro formulario desde proceso asincrono (Resp: 57766)22/10/14 13:48Pipe[hgjfkdls]   
Buen día,

Te comento que para realizar cambios en controles es necesario realizarlo desde el hilo principal de la aplicación.

¿Cómo?, pues de la clase principal “Control”, de la cual se derivan los controles de .NET, se hereda un método llamado “BeginInvoke” al cual pasamos un delegado el cual se ejecuta de forma asincrónica en el subproceso donde identificador subyacente del control donde se creó.

En términos simples, el delegado pasado al método se ejecuta en el hilo principal (siempre y cuando el control se haya creado en aquel hilo).

Saludos,

Pipe [hgjfkdls]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
57769 Re: Problema control otro formulario desde proceso asincrono (Resp: 57767)27/10/14 18:21jjthetower   
Muchas gracias Pipe,
Finalmente decidí poner el procedimiento ejecutado por el Backgroundworker en el formulario en el que se había creado el control y todo solucionado. Eso si, me hubiera gustado poder haberlo puesto en un archivo de código independiente para tenerlo todo mas organizado. En fin...

Muchas gracias.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 125 - App. iniciada: 14/12/2017 7:42:09 GMT - La hora GMT del servidor es: 14/12/2017 20:51:21 GMT