跳到主要內容

[C#] 避免系統進入休眠狀態

Prevent system from going to sleep or hibernate

不知道大家有沒有遇過這種問題

由於程式執行的時間可能需要花費大量時間

又執行的環境沒有disable休眠的服務

因此程式執行到一半時系統常常會進入休眠狀態

而造成程式無法作完


為了避免這種狀況發生

可以在程式執行的開頭先暫時關閉系統的休眠功能

直到最後在把休眠功能開啟

        [ DllImport( "kernel32.dll")]

        private static extern uint SetThreadExecutionState( uint esFlags);

        private const uint ES_CONTINUOUS = 0x80000000;

        private const uint ES_SYSTEM_REQUIRED = 0x00000001;

        private const uint ES_DISPLAY_REQUIRED = 0x00000002;

        int Main(){

        
        
         //Disable S3\S4
         SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED );

         // Do something
         
         //Enable S3\S4
         SetThreadExecutionState(ES_CONTINUOUS);

        }





留言