我有一个WPF程序,它与正在收集数据的专用USB记忆棒(实际上是一个ANT USB加密狗)进行通信。我注意到数据收集在几个小时后就停止了。原因很明显在Windows日志(系统)中,在程序停止获取数据的确切时间,我看到: 系统正在进入睡眠状态 睡眠原因:系统闲置
问题
答案 0 :(得分:2)
您可以使用SetThreadExecutionState功能阻止计算机进入低功耗模式(睡眠/暂停)。
为什么进入低功耗模式会中断数据采集 - Windows会暂停这些模式下的所有进程,USB端口进入低功耗模式,这可能意味着您的USB设备也无法供电。这是设计的。毕竟,我们希望我们的计算机进入睡眠状态的全部原因是电池没有耗尽。
答案 1 :(得分:1)
您可以应用上述回复,只需您可以进入控制面板 - >电源选项并修改设置,因此您的系统永远不会进入休眠状态。
答案 2 :(得分:0)
至1):您可以在低于Vista的Windows版本上使用SystemParametersInfo与其中一个与电源相关的值来打开/关闭省电设置。从Vista开始,您应该注册其中一个power events,操作系统会在您需要的时候通知您。
To 2):如果操作系统关闭,它管理的硬件将关闭。您还期望发生什么?如果操作系统运行运行USB设备的USB设备驱动程序,如果操作系统进入睡眠状态,您认为会发生什么?没有驱动程序,USB设备开始自行运行?