Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#网络可用性更改不';断开时不要触发_C#_Winforms - Fatal编程技术网

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
工作。