2009-01-14 20 views

Respuesta

29

manejar los siguientes eventos:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged 

Puede hacer referencia a this página para más detalles.

También querrá ver el msdn article en la clase SystemEvents.

6

Hay dos eventos - SystemEvents.DisplaySettingsChanged y SystemEvents.DisplayedSettingsChanging que puede manejar. Tenga en cuenta que ambos eventos son estáticos y deberá separar sus manejadores antes de salir de su programa.

+6

"tendrá que desconectar sus controladores antes de salir de su programa": ¡por supuesto que no! Una vez que el proceso se detiene, no importa si se da de baja o no ... Es solo que los objetos que están suscritos al evento no serán elegibles para GC y permanecerán en la memoria –

+0

. Necesita separar los manejadores antes del objeto del manejador será GCed. Si el proceso sale, no importa. Si su aplicación continúa ejecutándose después de haber dejado de preocuparse por los cambios en la pantalla, debe darse de baja en ese momento para que GC funcione correctamente. – user169771

+2

La documentación dice: "Debido a que se trata de un evento estático, debe desconectar los controladores de eventos cuando se desecha su aplicación, o se producirá una pérdida de memoria". https://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.displaysettingschanged.aspx?f=255&MSPPError=-2147217396 – CLS

4

Seguro que no tiene que cancelar su suscripción a eventos estáticos (o cualquier evento) si su programa (proceso) está muriendo. El sistema operativo se encargará de liberar toda la memoria de su proceso al sistema operativo. Sin embargo, si se suscribe a un evento estático o a cualquier evento que apunte a un objeto con una duración más larga que la suscripción de su objeto, y desea que ese objeto sea elegible para GC, debe darse de baja (- =) del evento.

Y siempre es una buena práctica anular la suscripción a todos los eventos. Nunca se sabe cuándo cambiará la vida útil de sus objetos (por otra persona) durante la vida útil de su código fuente/producto ...

Cuestiones relacionadas