C#网络可用性更改不';断开时不要触发
我的目标是检测我试图使用C#网络可用性更改不';断开时不要触发,c#,winforms,C#,Winforms,我的目标是检测我试图使用NetworkChange类的以太网电缆何时断开连接,但在拔下以太网电缆时不会触发事件networkavailabilitychangedNetworkAddressChanged确实会在大约8秒钟内触发,但是NetworkAvailabilityChanged从未触发过,我缺少什么吗 public partial class Form1 : Form { public Form1() { Initializ
NetworkChange
类的以太网电缆何时断开连接,但在拔下以太网电缆时不会触发事件networkavailabilitychanged
NetworkAddressChanged
确实会在大约8秒钟内触发,但是NetworkAvailabilityChanged
从未触发过,我缺少什么吗
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");
}
}
NetworkAvailabilityChanged基于NetworkInterface.GetIsNetworkAvailable(),它声明: 如果任何网络接口标记为“up”,并且不是环回或隧道接口,则认为网络连接可用
因此,如果有多个NIC,如果有第二个NIC(有线或无线)满足这些条件,则在拔下电缆时不会触发NetworkAddressChanged。虚拟机网络似乎也很重要,我有一个只有VirtualBox主机的网络,我必须禁用该网络才能让
NetworkAvailabilityChanged
工作。