2012-10-14 45 views
0

我的目標是檢測何時以太網電纜斷開連接我嘗試使用NetworkChange類,但事件NetworkAvailibilityChanged在我拔出以太網電纜時未觸發。 NetworkAddressChanged確實在大約8秒內被觸發,但NetworkAvailibilityChanged從來沒有發生過,是否有什麼我失蹤?C#NetworkAvailibilityChanged不會在斷開連接時觸發

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged); 
      NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged); 
     } 

     void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) 
     { 
      Console.WriteLine("NetworkChange_NetworkAvailabilityChanged"); 
     } 

     void NetworkChange_NetworkAddressChanged(object sender, EventArgs e) 
     { 
      Console.WriteLine("NetworkChange_NetworkAddressChanged"); 
     } 


    } 

回答

0

NetworkAvailabilityChanged基於NetworkInterface.GetIsNetworkAvailable(),該聯署:

的網絡連接被認爲是可用的,如果任何網絡接口被標記爲「向上」,而不是一個迴環或隧道接口。

因此,如果有多個網卡,如果存在符合這些條件的第二個網卡(有線或無線),拔下網線時NetworkAddressChanged將不會觸發。

相關問題