簡體   English   中英

NetworkChange.NetworkAddressChanged事件停止工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM