在SetWaitableTimer()调用后,为什么我的Windows 10 PC没有唤醒?

时间:2017-12-08 18:18:00

标签: c# windows-10 sleep

我有两台Windows 10 PC,都运行Fall Creators Update,并安装了所有最新补丁。通过CreateWaitableTimer / SetWaitableTimer设置定时器后,一个人从睡眠中醒来,另一个没有...这是一个问题,因为非唤醒的是我的DVR,需要能够按需唤醒: )。

两者都没有启用休眠功能。

我无法在系统上看到任何拒绝唤醒的异常事件。它只是不会被唤醒,除非我做一个手动唤醒或发送一个wake-on-lan数据包。

这是我在两个系统上运行的C#测试代码:

# All .svgs in $svg_dir will be minified into $svg_minified_dir
$svg_dir = 'D:/svg'
$svg_minified_dir = 'D:/svgs_minified'
Get-ChildItem $svg_dir -Filter *.svg | ForEach-Object {
    $svg_content = Get-Content $_.FullName -Raw
    $svg_minified = $svg_content -replace '(\.[0-9]{2})([0-9]{1,5})', '${1}'
    $svg_minified.Trim() | Out-File "$svg_minified_dir/$($_.Name)" -Encoding utf8 -NoNewline
}

非常感谢有关检查内容或采取哪些其他诊断步骤的建议。

其他信息

有人建议我尝试通过手动定义的计划任务(即使用Task Scheduler应用程序)唤醒计算机。有趣的是,这项任务并未唤醒计算机。

1 个答案:

答案 0 :(得分:1)

在Fall Creators Update的升级过程中,关键电源管理设置已更改。

在高级电源设置下 - >睡眠 - >允许唤醒定时器,先前的启用设置已更改为重要唤醒定时器。 "重要的唤醒定时器"是最近才引入的新设置。

此更改导致无法唤醒的系统忽略软件中安排的唤醒事件。基本上,它的设计只允许操作系统唤醒。

将设置恢复为已启用可解决问题。