c#计时器:系统唤醒后HTTP连接错误
我在C#应用程序(Win7 64)中有一个计时器。计时器回调每隔20分钟通过HTTP获取一些数据。它工作得很好。但是如果我的电脑进入睡眠状态几个小时,然后醒来,我会收到一个HTTP错误,说“找不到服务器”。服务器一直在运行,所以这不是真正的问题。我怀疑真正的原因是,当计时器回调在睡眠期间错过其“时间段”时,它会变得“过期”,并在唤醒后立即执行,而无需等待PC重新建立互联网连接。我可以通过在回调开始时添加一个Thread.Sleep(5000)来解决这个问题,但这有点麻烦(建立Internet连接可能需要更长的时间)。我的问题是:c#计时器:系统唤醒后HTTP连接错误,c#,windows-7,timer,resume,wakeup,C#,Windows 7,Timer,Resume,Wakeup,我在C#应用程序(Win7 64)中有一个计时器。计时器回调每隔20分钟通过HTTP获取一些数据。它工作得很好。但是如果我的电脑进入睡眠状态几个小时,然后醒来,我会收到一个HTTP错误,说“找不到服务器”。服务器一直在运行,所以这不是真正的问题。我怀疑真正的原因是,当计时器回调在睡眠期间错过其“时间段”时,它会变得“过期”,并在唤醒后立即执行,而无需等待PC重新建立互联网连接。我可以通过在回调开始时添加一个Thread.Sleep(5000)来解决这个问题,但这有点麻烦(建立Internet连接
在尝试查询之前确保您已建立连接。我认为您不应该为WMI之类的问题而烦恼
如果无法访问网络,请将计时器设置为在一分钟内启动,而不是20分钟。您可能有一个等待机制,重复使用它不会显得很困难。如果找不到服务器,请在短时间超时后再试一次?我希望我能分辨出以下两种情况之间的区别:1)服务器真的停机(用户收到错误消息),2)没有网络连接(在系统唤醒之后):在网络连接存在之前,不要检查服务器(也不要打扰用户)。