在c#中,如何在系统进入睡眠状态之前完成一组任务

本文关键字:任务 一组 系统 状态 | 更新日期: 2023-09-27 18:25:08

我想在系统进入睡眠状态之前保存一些用户的工作,所以在进行了一些研究之后,我了解了SystemEvents.PowerModeChanged,但由于此事件,我的程序没有完成保存用户的工作。在此之前,只有系统进入睡眠。那么我应该如何处理这种情况呢?

在c#中,如何在系统进入睡眠状态之前完成一组任务

ManagementEventWatcher eventWatcher = new System.Management.ManagementEventWatcher();
WqlEventQuery query = new WqlEventQuery("Win32_PowerManagementEvent"); //catch power change events
eventWatcher.Query = query;
eventWatcher.EventArrived += new System.Management.EventArrivedEventHandler(eventWatcher_EventArrived); // rgister the event handler
eventWatcher.Start(); // start the event watcher

经办人:

void eventWatcher_EventArrived(object sender, System.Management.EventArrivedEventArgs e)
{
        int eventType = Convert.ToInt32(e.NewEvent.Properties["EventType"].Value);
        switch (eventType)
        {
            case 4://sleep                       
                    break;
            case 7://resume
                break;
        }
}

注意:当程序退出时,不要忘记停止观察程序。

if(eventWatcher != null)
     eventWatcher.Stop();

更多详细信息。。。

http://cmehmet6parmak.wordpress.com/2011/06/14/catch-computer-sleep-event-c-windows-7/