Consulta sobre 'Eventos'

09/09/2004 - 14:12 por e-lores | Informe spam
Tengo una pequeña duda que me gustaría que me aclaráseis.

Resulta que tengo un objeto que me hace de servidor y cada cierto tiempo
envía un evento 'MensajeEnviado'.
Para capturalo, tengo un formulario que al inicializarlo, lo subscribo a
dicho evento (el objeto es global) y me lo muestra en pantalla.
Resulta que si cierro el formulario y creo otro nuevo el programa falla. Lo
he solucionado simplemente con cancelar la subscripción al evento en el
destructor del formulario pero, ¿por que este comportamiento? ¿No debería
funcionar sin cancelar la subscripción?

Gracias.
Ernesto Lores.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
09/09/2004 - 23:33 | Informe spam
Ernesto,

Buena pregunta!
Prueba a declarar estático el método del formulario (y entonces al
suscribirte al evento utiliza el nombre de la clase del formulario en lugar
del nombre del objeto formulario). Creo que eso debe resolver tu problema.

Slds - Octavio

"e-lores" escribió en el mensaje
news:
Tengo una pequeña duda que me gustaría que me aclaráseis.

Resulta que tengo un objeto que me hace de servidor y cada cierto tiempo
envía un evento 'MensajeEnviado'.
Para capturalo, tengo un formulario que al inicializarlo, lo subscribo a
dicho evento (el objeto es global) y me lo muestra en pantalla.
Resulta que si cierro el formulario y creo otro nuevo el programa falla.


Lo
he solucionado simplemente con cancelar la subscripción al evento en el
destructor del formulario pero, ¿por que este comportamiento? ¿No debería
funcionar sin cancelar la subscripción?

Gracias.
Ernesto Lores.


Respuesta Responder a este mensaje
#2 e-lores
10/09/2004 - 08:24 | Informe spam
Seguramente también funcionará como dices. Sin embargo no estoy tan
interesado en una solución (que ya la tenía) sino en una explicación del
suceso. ¿Como funcionan internamente los eventos? ¿No debería cancelarse la
subscripción primera que hice al eliminar el objeto y aceptar la nueva
subscripción del nuevo objeto?
¿Alguien me lo puede aclarar?

Gracias.


"Octavio Hernandez" escribió en el mensaje
news:%
Ernesto,

Buena pregunta!
Prueba a declarar estático el método del formulario (y entonces al
suscribirte al evento utiliza el nombre de la clase del formulario en


lugar
del nombre del objeto formulario). Creo que eso debe resolver tu problema.

Slds - Octavio

"e-lores" escribió en el mensaje
news:
> Tengo una pequeña duda que me gustaría que me aclaráseis.
>
> Resulta que tengo un objeto que me hace de servidor y cada cierto tiempo
> envía un evento 'MensajeEnviado'.
> Para capturalo, tengo un formulario que al inicializarlo, lo subscribo a
> dicho evento (el objeto es global) y me lo muestra en pantalla.
> Resulta que si cierro el formulario y creo otro nuevo el programa falla.
Lo
> he solucionado simplemente con cancelar la subscripción al evento en el
> destructor del formulario pero, ¿por que este comportamiento? ¿No


debería
> funcionar sin cancelar la subscripción?
>
> Gracias.
> Ernesto Lores.
>
>


Respuesta Responder a este mensaje
#3 Octavio Hernandez
10/09/2004 - 17:43 | Informe spam
Ernesto,

¿Que error es el que da exactamente? ¿seguro que no es algo relacionado con
que intentas acceder a algún miembro del formulario 'disposeado'?
Por eso te decía que convirtieras el gestor de evento en estático. Si
compila es que no hace uso de nada específico de una instancia concreta.

Slds - Octavio

"e-lores" escribió en el mensaje
news:
Seguramente también funcionará como dices. Sin embargo no estoy tan
interesado en una solución (que ya la tenía) sino en una explicación del
suceso. ¿Como funcionan internamente los eventos? ¿No debería cancelarse


la
subscripción primera que hice al eliminar el objeto y aceptar la nueva
subscripción del nuevo objeto?
¿Alguien me lo puede aclarar?

Gracias.


"Octavio Hernandez" escribió en el mensaje
news:%
> Ernesto,
>
> Buena pregunta!
> Prueba a declarar estático el método del formulario (y entonces al
> suscribirte al evento utiliza el nombre de la clase del formulario en
lugar
> del nombre del objeto formulario). Creo que eso debe resolver tu


problema.
>
> Slds - Octavio
>
> "e-lores" escribió en el mensaje
> news:
> > Tengo una pequeña duda que me gustaría que me aclaráseis.
> >
> > Resulta que tengo un objeto que me hace de servidor y cada cierto


tiempo
> > envía un evento 'MensajeEnviado'.
> > Para capturalo, tengo un formulario que al inicializarlo, lo subscribo


a
> > dicho evento (el objeto es global) y me lo muestra en pantalla.
> > Resulta que si cierro el formulario y creo otro nuevo el programa


falla.
> Lo
> > he solucionado simplemente con cancelar la subscripción al evento en


el
> > destructor del formulario pero, ¿por que este comportamiento? ¿No
debería
> > funcionar sin cancelar la subscripción?
> >
> > Gracias.
> > Ernesto Lores.
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida