suspender sirve qué que para hibernar hay existe entre diferencias diferencia c# .net winforms events hibernate-mode

c# - sirve - ¿Cómo manejo con gracia los modos de hibernación/suspensión en una aplicación winforms?



qué diferencias existe entre suspender e hibernar (3)

Este article cubre la escucha de esos eventos. Tendrá que hacer algo como anular WndProc y escuchar los eventos PBT_APMSUSPEND.

Estoy escribiendo una aplicación de formulario de Windows en .net usando C #.

Me encuentro con un problema que indica que si mi programa se ejecuta cuando la computadora entra en estado de suspensión y / o hibernación (no estoy seguro en este momento cuál, o si ambos, causan el problema), cuando la máquina se vuelve a activar. el programa simplemente cuelga. La única forma de salir de él es detener el proceso desde el administrador de tareas.

Esto, por razones obvias, no es la forma en que quiero que funcione el programa. Incluso si acabo de apagar el programa cuando entra en estos estados, estaría bien, pero no estoy muy seguro de cómo hacerlo o si hay una manera más elegante de manejar esto.


Manejar esos eventos puede ser una solución alternativa. Pero antes de aplicar este tipo de solución alternativa, intentaría averiguar qué estaba haciendo la aplicación cuando el sistema operativo entró en hibernación.

Ocurre colgando aunque la aplicación estaba inactiva?

¿La aplicación está realizando algún tipo de trabajo de bajo nivel (comunicación con controladores de dispositivos o hardware externo) que no debe interrumpirse?

¿La aplicación utiliza algún tipo de conexión de red?


Necesitas:

using Microsoft.Win32;

Y este es el código:

void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) { if(e.Mode == PowerModes.Suspend) { this.GracefullyHandleSleep(); } }

Esto es con lo que fui.