![](/img/trans.png)
[英]Why NetworkChange.NetworkAddressChanged Event fired twice?
[英]NetworkChange.NetworkAddressChanged event stops working
我正在使用這種簡單的方法來檢測網絡連接/斷開事件:
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網絡連接/斷開連接的通知,而無需輪詢。
在我看來,您需要使用Native Wifi API 。
看一下WlanRegisterNotification函數,特別是以下通知:
WLAN_NOTIFICATION_SOURCE_ACM:
注冊自動配置模塊生成的通知。
Windows XP SP3和Windows XP SP2的無線LAN API:僅wlan_notification_acm_connection_complete和wlan_notification_acm_disconnected通知可用。
免責聲明:過去我使用過Native Wifi API,但從未使用過此特定功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.