Autor Tema: Crear evento y que se efectúe al cambiar un bool en c#  (Leído 3035 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sauron

  • PIC12
  • **
  • Mensajes: 78
Crear evento y que se efectúe al cambiar un bool en c#
« en: 29 de Septiembre de 2011, 12:53:45 »
Hola compañeros.

Estoy realizando un programa en c# que en algún momento abre un proceso externo. La idea es que cuando ese proceso se cierre se lance un evento.

Usando Process.HasExited, devuelve 1 cuando el programa externo asociado se cierra.

En la red encontré ésto:

Código: [Seleccionar]
public delegate void boolChangeHandler(object sender, EventArgs e);

public event boolChangeHandler boolChanged;

protected virtual void OnboolChanged()
            {
                if (boolChanged != null)
                {
                    boolChanged();  // Fire the event!
                }
            }

Dónde boolChanged() debe ser llamado de FORMA MANUAL si la variable bool cambia.

No hay una forma automática?, porque para eso se usa un método normal.

Gracias!


Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: Crear evento y que se efectúe al cambiar un bool en c#
« Respuesta #1 en: 14 de Octubre de 2011, 23:58:40 »
Hola compañeros.

Estoy realizando un programa en c# que en algún momento abre un proceso externo. La idea es que cuando ese proceso se cierre se lance un evento.

Usando Process.HasExited, devuelve 1 cuando el programa externo asociado se cierra.

En la red encontré ésto:

Código: [Seleccionar]
public delegate void boolChangeHandler(object sender, EventArgs e);

public event boolChangeHandler boolChanged;

protected virtual void OnboolChanged()
            {
                if (boolChanged != null)
                {
                    boolChanged();  // Fire the event!
                }
            }

Dónde boolChanged() debe ser llamado de FORMA MANUAL si la variable bool cambia.

No hay una forma automática?, porque para eso se usa un método normal.

Gracias!


Pues obligatoriamente te toca usar un hilo... Te recomiendo el backgroudworker..

Utiliza el delegado afuera de toda clase... Luego haces un objeto evento del delegado creado y en progress change del backgroundworker activas el evento...

Es posible hacer lo que tu quieres sin embargo te toca usar una clase que cuando construyas el objeto empiece un bucle infinito preguntando por tu variable cada cierto tiempo...


 

anything