Acceso a controles desde hilos

29/03/2007 - 23:56 por Kapsule | Informe spam
Hola a todos.

Tengo una pregunta sobre algo que no entiendo de c#. Resulta que la versión
VS.2003 cuando creabas un hilo y desde este intentabas acceder a un control
Textbox, no había problemas. Sin embargo en la versión VS.2005 ya no es
posible porque sino genera una exception. Al parecer si no creas un delegado
para poder implementar el acceso a ese control, no funciona.

Otra opción es activar la propiedad CheckForIllegalCrossThreadCalls = false.
Con esta propiedad desactivamos ese comportamiento y podemos operar como
VS.2003. La verdad es que no se que utilizar, alguien me puede aconsejar? Hay
algun problema si utilizo la propiedad CheckForIllegalCrossThreadCalls en vez
de delegados?. Espero que no porque el estar creando delegados para cada una
de las opciones que quieres implementar, la verdad es que es un coñazo. Por
otro lado pienso que si han hecho este sistema de delegados es por algún
motivo, no?

Un saludo y gracias.
 

Leer las respuestas

#1 Octavio Hernandez
30/03/2007 - 00:00 | Informe spam
Hola,

Lo correcto cuando accedes a un control desde otro hilo es hacerlo mediante
Control.Invoke().
No he visto esa propiedad CheckForIllegalCrossThreadCalls, pero por el
nombre da la impresión de que simplemente suprime las comprobaciones,
lo cual no evitaría un "cuelgue" u otro fenómeno anormal en caso de
conflictos.

Slds - Octavio



"Kapsule" escribió en el mensaje
news:
Hola a todos.

Tengo una pregunta sobre algo que no entiendo de c#. Resulta que la
versión
VS.2003 cuando creabas un hilo y desde este intentabas acceder a un
control
Textbox, no había problemas. Sin embargo en la versión VS.2005 ya no es
posible porque sino genera una exception. Al parecer si no creas un
delegado
para poder implementar el acceso a ese control, no funciona.

Otra opción es activar la propiedad CheckForIllegalCrossThreadCalls =
false.
Con esta propiedad desactivamos ese comportamiento y podemos operar como
VS.2003. La verdad es que no se que utilizar, alguien me puede aconsejar?
Hay
algun problema si utilizo la propiedad CheckForIllegalCrossThreadCalls en
vez
de delegados?. Espero que no porque el estar creando delegados para cada
una
de las opciones que quieres implementar, la verdad es que es un coñazo.
Por
otro lado pienso que si han hecho este sistema de delegados es por algún
motivo, no?

Un saludo y gracias.

Preguntas similares