我在 C# 应用程序(Win7 64)中有一个计时器。每 20 分钟计时器回调通过 HTTP 获取一些数据。它运作良好。但是如果我的电脑睡了几个小时,然后醒来,我会收到一个 HTTP 错误,说“找不到服务器”。服务器一直在运行,所以这不是真正的问题。我怀疑真正的原因是由于定时器回调在睡眠期间错过了它的“时隙”,它变得“过期”并在唤醒后立即执行,而无需等待 PC 重新建立 Internet 连接. 我可以通过在回调开始时添加Thread.Sleep(5000)来解决问题,但这有点麻烦(建立 Internet 连接可能需要更长的时间)。我的问题:
从睡眠模式唤醒后,Win确实需要几秒钟来重新建立互联网连接吗?我的连接是 DSL,“始终在线”。
是否有一个 C# 系统调用会等到 Win 建立 Internet 连接(或者如果这在 20 秒内没有发生,则超时)?
编辑:刚刚发现:检查 C# 中的网络连接。不像我希望的那么简单,它需要一系列检查:任何LAN 连接、DNS 查找(LAN 外)、ping 服务器(检查特定服务器)。