Problema con hilos y eventos

31/01/2005 - 00:37 por Joaquín Zarco Gomis | Informe spam
Hola a todos.

Tengo un procedimiento que se ejecuta en un subproceso y que lanza un
evento cuando recibe datos, este evento es capturado por una clase que la
encapsula y esta a su vez lanza un evento que captura un formulario.

Pues bien, cuando desde el procedimiento que captura el evento desde el
formulario trabajo con controles visuales (por ejemplo añadir un nodo a un
treeview) me ocurre el siguiente error:

La acción que se realiza en este control se está llamando desde el
subproceso erróneo. Debe calcular las referencias al subproceso correcto
utilizando Control.Invoke o Control.BeginInvoke para realizar esta acción.

¿Que problemas existen al lanzar eventos desde subprocesos?

Saludos
Joaquín Zarco

Preguntas similare

Leer las respuestas

#1 A.Poblacion
31/01/2005 - 09:12 | Informe spam
El problema es que el interface grafico de los formlarios de windows no es
multihilo. Es necesario que todas las modificaciones que se realicen sobre
los controles de pantalla las haga el mismo hilo que originalmente abrió la
pantalla. Para ello lo que tienes que hacer es escribir una subrutina que
realice ese cambio en pantalla, y en lugar de llamarla directamente desde el
evento, crear un delegado que apunte a tu subrutina e invocar a ese delegado
a través del método Invoke del formulario. Eso hace que se ejecute en el
mismo hilo y no dé problemas.


"Joaquín Zarco Gomis" wrote in message
news:
Hola a todos.

Tengo un procedimiento que se ejecuta en un subproceso y que lanza un
evento cuando recibe datos, este evento es capturado por una clase que la
encapsula y esta a su vez lanza un evento que captura un formulario.

Pues bien, cuando desde el procedimiento que captura el evento desde


el
formulario trabajo con controles visuales (por ejemplo añadir un nodo a un
treeview) me ocurre el siguiente error:

La acción que se realiza en este control se está llamando desde el
subproceso erróneo. Debe calcular las referencias al subproceso correcto
utilizando Control.Invoke o Control.BeginInvoke para realizar esta acción.

¿Que problemas existen al lanzar eventos desde subprocesos?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida