我正在使用这种简单的方法来检测网络连接/断开事件:
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
...
static void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
RaiseNewtorkChange();
}
static void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
RaiseNewtorkChange();
}
static void RaiseNewtorkChange()
{
...
}
问题是有时NetworkAddressChanged
事件在多次触发后停止工作。有谁知道为什么会发生这种情况?
或者,是否有另一种方法来处理网络连接/断开连接事件,使用 C# 或 C/C++。也许 Windows API 或 WMI 中有这样的功能?我需要通知 LAN/WiFi 网络连接/断开连接,无需轮询。